0
这是我第一次尝试创建用于编译的make文件。我正在编写一个项目,我希望在编译时划分文件,播种我有3个文件夹:src,bin和header。今天我编译命令gcc file1.c中file2.c中file3.c中-lncursesMakefile:将二进制文件,源文件和头文件拆分为目录
如何我写一个makefile来实现这一目标?
这是我第一次尝试创建用于编译的make文件。我正在编写一个项目,我希望在编译时划分文件,播种我有3个文件夹:src,bin和header。今天我编译命令gcc file1.c中file2.c中file3.c中-lncursesMakefile:将二进制文件,源文件和头文件拆分为目录
如何我写一个makefile来实现这一目标?
这将做到这一点:
bin/myBinaryName: file1.c file2.c file3.c
gcc $^ -Iheader -lncurses -o [email protected]
vpath %.c src
有更复杂的方法比这个,但我怀疑你正在服用的同一课程的谁问非常类似的问题在过去几周的其他新人。
如果你想要一个更基本的介绍,或更复杂的makefile文件,你可以尝试不同的问题。
编辑:
让我们尝试一些简单。写此生成的文件(并将其命名为makefile
):
all:
echo hello world
注意,之前的“回声”的空格是TAB。现在在命令行上尝试make
。怎么了?
bin/myBinaryName是一个文件夹?这个makefile应该放在src和bin的根文件夹中,还是放在src文件夹中? – user265767
@ user265767,你没有指定,所以我认为你想要二进制文件进入'bin /',并将其命名为'myBinaryName'。该makefile属于父目录(即根文件夹)。 – Beta
当然,bin/myBinaryName:file1.c file2.c file3.c应该看起来像这样,而不是像这样:bin/myBinaryName:file1.c file2.c file3.c,其中:被删除?删除后:make stop抱怨该bin/myBinaryName:没有这样的文件或目录。现在让抱怨Permission denied,每个文件和文件夹都对所有用户都有读写权限? – user265767