我对此处描述的要求类似CMake: reuse object files built for a lib into another lib target。 答案是使用对象库,我已经成功地尝试了它们。然而,就像原始海报一样,我想要构建库并使用目标文件。如何做到这一点没有得到回答。 现在我可以
add_library(foo-objects OBJECT foo.cpp)
add_library(foo_static SHARED $<TARGET_OBJECTS:foo-objects>)
但是这导致Visual Studio中出现的项目数量增加了一倍(这是我最常用的项目),当你已经拥有数百个项目时这不是很好!
查看输出VS项目OBJECT库项目实际上构建了一个静态库,SHARED项目只使用OBJECT项目中的目标文件。我想知道是否有办法在没有两个项目的情况下做到这一点。即使对于add_library(foo_static SHARED foo.cpp),也有任何理由不能填充$<TARGET_OBJECTS:foo-objects>
。库项目无论如何构建所有目标文件?