所以我有一个make文件,存储在一个名为"temp“的目录中。下面的目录有一个src文件夹,有两个.c文件"file1.c”和"file2.c“。temp目录还包含一个include文件夹(它是空的)和一个bin文件夹(它是空的,直到make命令被设置为运行)。我目前正在尝试编译一个单独的.c文件(让它工作),但是一个文件似乎都不能在这里工作。
目录的外观如下所示:
tempcd刻录到temp.
bin include Makefile src这是我的makefile:
all:
gcc -Wall -pedantic -std=c99 src/file1.c -Iinclude -o bin/runMe -lncurses是的,在gcc的前面有一个标签。在这个令人沮丧的问题上,任何帮助都将不胜感激。此外,如果可能的话,任何关于编译第二个.c文件的输入也会非常有帮助!
发布于 2015-02-23 09:31:39
Nothing to be done for TARGET意味着目标没有命令,在这种情况下,几乎可以肯定地说,您在gcc行上没有选项卡。
话虽如此,但这只是一个迫在眉睫的问题。这个makefile也没有遵循良好的实践,并且将不必要地重新编译您的程序(以及在创建all文件时完全停止工作)。
在最近删除的答案中,DrC有非常好的建议,关于如何改进你的makefile,以避免后两个问题。
具体地说,你的makefile应该看起来像这样:
.PHONY: all
all: bin/runMe
bin/runMe: src/file1.c
gcc -Wall -pedantic -std=c99 $^ -Iinclude -o $@ -lncurses这会将all目标标记为.PHONY,以便创建的all文件或目录不会混淆make,并在源文件上为构建的二进制文件设置先决条件,以便make可以知道何时需要(以及不需要)重建二进制文件。
https://stackoverflow.com/questions/28665275
复制相似问题