c++ - clang : warning: principal. o: 'linker' 输入未使用

标签 c++ c makefile linker

我正在学习计算机工程,我正在尝试编写一个练习,但我在问题的标题中收到了警告

clang: warning: principal.o: 'linker' 输入未使用

我认为这是我的 Makefile 中的问题,但我找不到它。这是我的生成文件

CPPFLAGS = g++ -c

principal : principal.o 
    $(CPPFLAGS) principal.o -o principal

principal.o: principal.cpp conjunto.o
    $(CPPFLAGS) principal.cpp -o principal.o -I.

enfermedad.o: enfermedad.cpp
    $(CPPFLAGS) enfermedad.cpp -o enfermedad.o -I.

mutacion.o: mutacion.cpp enfermedad.o
    $(CPPFLAGS) mutacion.cpp -o mutacion.o -I.

conjunto.o: conjunto.cpp mutacion.o
    $(CPPFLAGS) conjunto.cpp -o conjunto.o -I.

clean:
    echo "Cleaning..."
    rm *.o

非常感谢那些回答的人。

最佳答案

使用 CPPFLAGS 来指定编译器和标志充其量是一种传统方式;你最好把它们分开。

对您的 makefile 的最小修复是:

principal : principal.o 
    g++ principal.o -o principal

这避免了在打算链接程序时包含 -c 选项。但是,您可能需要在链接命令行中列出所有目标文件。你的依赖结构也有点不寻常,虽然不是形式上的错误。

因此,一个更合理的解决方法是:

OBJECTS = principal.o enfermedad.o mutacion.o conjunto.o 

principal: ${OBJECTS} 
    g++ ${OBJECTS} -o $@

关于c++ - clang : warning: principal. o: 'linker' 输入未使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40470740/

相关文章:

c - c 程序的 makefile(在 knoppix 上)

c++ - 模棱两可的模板函数特化编译错误

c++ - 无法从网络摄像头读取

c - gcc 编译器中的 outp() 对应项是什么?

c - 分析 Linux 中的同步操作

c++ - 我的 makefile 不工作

php - PHP中不使用父类时是否称为多态性?

c++ - 使用 CppAD 时,IPOPT 不服从约束但不记录违规

c - 同名.h和.c文件以及这些文件之间的撤销关系?

c++ - CLION -- 如何为 CMakeLists.txt 文件中未提及的应用程序创建和调试配置