【发布时间】:2017-02-01 08:40:11
【问题描述】:
我的项目是这样的:
project
├── test
│ ├── CMakeLists.txt
│ ├── main.cpp
│ └── test_class1.cpp
├── CMakeLists.txt
├── main.cpp
├── ...
├── class1.h
└── class1.cpp
我想重用为项目二进制文件编译的 class1.o。 默认的 CMake 行为也编译了两次以进行测试。 我尝试使用 OBJECT 库,但它将所有对象都放在这个库变量中。然后编译打印
main.cpp:(.text.startup+0x0): `main'的多重定义
这意味着一个目标中有 2 个不同的 main.o。主项目编译中的所有其他 *.o 文件都是。
如何排除不需要的 *.o 文件?
【问题讨论】:
-
你能发布你的
makefile吗? -
OBJECT 库肯定会有所帮助。如果没有,请提供
CMakeLists.txt你在哪里使用它。