所以,我是makefile的新手,我在命令提示符下很糟糕。所以我想确保我的语法正确。
我有三个文件:
main.cpp
Blob.cpp
Blob.h
我会创建一个名为makefile.make的文件(在记事本或其他东西中),文本中会显示:
all:
g++ main.cpp Blob.cpp Blob.h -o hello
然后我在命令提示符下运行
make
将创建文件?它是否正确?它们都在同一目录中,以及VS2012放在那里的一些其他文件夹。
答案 0 :(得分:1)
试试这个
hello:main.cpp Blob.cpp
[TAB] g++ main.cpp Blob.cpp -o hello
将其命名为Makefile
或makefile
。您只需运行make
即可构建它。否则,请将其命名为ex mymakefile
和run make -f mymakefile
以构建它
答案 1 :(得分:1)
如果您只想在每个文件都发生变化时重建可执行文件,请使用
all: hello
hello: main.cpp Blob.cpp Blob.h
g++ -o hello main.cpp Blob.cpp
如果你想进行单独的编译,你可以
all: hello
hello: main.o Blob.o
g++ -o hello main.o Blob.o
main.o: main.cpp Blob.h
g++ -o main.o main.cpp
Blob.o: Blob.cpp Blob.h
g++ -o Blob.o Blob.cpp
在这两种情况下,除了指定要完成的工作外,我们还告诉make什么文件是依赖项(也就是说,如果这些文件发生更改,我们需要重建)。
答案 2 :(得分:-1)
Google" makefile教程"而且你会找到很多网站。
要运行的命令必须以 Tab 字符开头,因此它应该是:
all:
g++ main.cpp Blob.cpp -o hello
确保您没有使用将 Tab 字符转换为空格的编辑器。