试图弄清楚Makefile

时间:2013-07-09 04:19:57

标签: makefile command-prompt

所以,我是makefile的新手,我在命令提示符下很糟糕。所以我想确保我的语法正确。

我有三个文件:

main.cpp
Blob.cpp
Blob.h

我会创建一个名为makefile.make的文件(在记事本或其他东西中),文本中会显示:

all:
g++ main.cpp Blob.cpp Blob.h -o hello

然后我在命令提示符下运行

make

将创建文件?它是否正确?它们都在同一目录中,以及VS2012放在那里的一些其他文件夹。

3 个答案:

答案 0 :(得分:1)

试试这个

hello:main.cpp Blob.cpp
[TAB] g++ main.cpp Blob.cpp -o hello

将其命名为Makefilemakefile。您只需运行make即可构建它。否则,请将其命名为ex mymakefilerun make -f mymakefile以构建它

使用basic makefile rules

获得新鲜感

答案 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 字符转换为空格的编辑器。