c++ - 未使用的链接器输入文件 c++ g++ make 文件

标签 c++ makefile g++ static-libraries gnu

我无法弄清楚是什么导致了我在制作项目时不断遇到的错误:

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/

相关文章:

c - makefile C 奇怪的 bash 命令行为

c - 使用 Assert 和 -B 进行 Makefile 帮助/说明

c++ - 打开 g++ 优化会导致段错误 - 我不明白

VS2012 中的 c++11 线程/互斥锁实现 - 触发断言

c++ - 如何从我的 Windows 笔记本电脑轻松设计基于 Linux 的终端应用程序?

c++ - 三元搜索以在数组中找到差异最小的点

C++比较两个对象

makefile - make 中惰性设置和立即设置之间巨大的内存使用差异

c++ - 从 Code::Blocks 配置 g++ 不会影响命令行

c++ - 为每个派生类优化(重新编译)继承虚方法