我无法弄清楚是什么导致了我在制作项目时不断遇到的错误:
i686-apple-darwin11-llvm-g++-4.2: -lncurses: linker input file unused because linking not done
我的 make 文件如下所示:
CC = g++
LIB_FLAGS = -l ncurses
FLAGS = $(LIB_FLAGS)
DEPENDENCIES = window.o element.o
# FINAL OUTPUTS
main: main.cpp $(DEPENDENCIES)
$(CC) $(FLAGS) -o main.out main.cpp $(DEPENDENCIES)
# MODULES
window.o: main.h classes/window.cpp
$(CC) $(FLAGS) -c classes/window.cpp
element.o: main.h classes/element.cpp
$(CC) $(FLAGS) -c classes/element.cpp
# CLEAN
clean:
rm -rf *.o
rm main.out
一切都编译正常,但我只是好奇是什么导致了这个错误信息以及它意味着什么..
最佳答案
您正在将链接器选项与 -c
一起传递给编译器调用,这意味着未执行链接,因此未使用 -l
选项。在你的情况下,你的 LIB_FLAGS
不应该在 FLAGS
中,而是在 main: ...
规则中指定:
main: main.cpp
$(CC) $(FLAGS) $(LIB_FLAGS) ...
关于c++ - 未使用的链接器输入文件 c++ g++ make 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12525579/