【发布时间】:2016-02-04 03:51:19
【问题描述】:
我在尝试创建位于根目录中的 makefile 时遇到困难,该文件随后将 CD 到另一个名为“code”的目录中,该目录将编译我的代码。此外,可执行文件还需要放置在一个名为“bin”的新目录中,该目录将位于我目前拥有的根目录中:
all: bin/main
test: bin/main
bin/main: main.cpp
mkdir -p bin
g++ -std=c++11 -Wall -Werror -ansi -pedantic -o bin/program main.cpp
注意:我需要这两个目标并进行测试。但是,只有当我的代码已经在根目录中时,这个 make(上图)才有效
更新:将代码目录重命名为 src,这是新的 makefile
all:
mkdir -p ./bin
g++ -std=c++11 -Wall -Werror -ansi -pedantic ./src/main.cpp -o./bin/prgm
测试: mkdir -p ./bin g++ -std=c++11 -Wall -Werror -ansi -pedantic ./src/main.cpp -o ./bin/prgm
但是现在我收到此错误“make:*** makefile:是一个目录。停止。” 我是否试图正确运行它?我这样做“$ make”
【问题讨论】:
-
我在这里看不到实际问题。您对应用程序的要求感到困惑。这不是这里任何人都可以回答的。只有您知道您的应用程序源的布局。一旦你弄清楚你的源代码是什么样子,以及构建需要哪些实际命令,那么编写 Makefile 的任务就开始了。
-
把 main.cpp 改成 code/main.cpp?
-
通常的做法是makefile在父目录中工作,你的.cpp文件包含父目录的相对路径。