0

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

我有三个文件:

main.cpp
Blob.cpp
Blob.h

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

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

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

make

并且文件将被创建?这个对吗?它们都在同一个目录中,还有一些 VS2012 放在那里的其他文件夹。

4

3 回答 3

1

尝试这个

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

将其命名为Makefilemakefile。您可以运行只是make为了构建它。其他任何你喜欢的名字,例如mymakefilerun make -f mymakefile构建它

用基本的方式获得新鲜感makefile rules

于 2013-07-09T04:30:56.220 回答
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 哪些文件是依赖项(即,如果这些文件发生更改,我们需要重新构建)。

于 2013-07-09T04:31:01.640 回答
-1

谷歌“makefile 教程”,你会发现很多网站。

要运行的命令必须以一个Tab字符开头,所以它应该是:

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

确保您没有使用将Tab字符转换为空格的编辑器。

于 2013-07-09T04:23:05.390 回答