【发布时间】:2015-10-15 00:27:29
【问题描述】:
我正在尝试运行一个如下所示的简单 makefile:
T=-ansi -pedantic -Wall -Werror
a.out: test.o extra.o
gcc $(T) -c test.o extra.o
test.o: test.c test.h
gcc $(T) -c test.c
extra.o: extra.c extra.h
gcc $(T) -c extra.c
clean:
rm *.o a.out
但我似乎收到警告,告诉我“链接器输入文件未使用,因为链接未完成”
我尝试在 gcc 之后从 a.out 指令中删除“-c”,但这会给我带来更多问题。我不知道如何从这里开始,任何想法/意见将不胜感激。
编辑:我正在通过“make -T”运行程序,同时从 a.out 中删除 -c,导致错误“无效符号索引”
【问题讨论】:
-
对不起,我像“make -T”一样运行它,如果我删除 -c,我会遇到“无效符号索引”的问题
-
查看答案...但是
make -T很奇怪;那有什么用? “无效符号索引”建议您删除所有.o文件并重新从头运行。 -
My Assigment 指定使用通过 T 命令构建的 makefile(makefile 中的第一行)。
-
make -T不这样做......不管它做什么。 T宏很好;它的用法很好。从命令行删除-T。 (我注意到 GNUmake3.81 不承认-T是一个有效的选项。要么它是新的,要么你使用的是make的不同变体。)