在我的 CMake 文件中,我指定了一个对象库:
add_library(core OBJECT ${sourcefiles})
我在后面会进一步提到这一组目标文件在共享库中的使用:
add_library(sharedlib SHARED $<TARGET_OBJECTS:core>)
这个很好用,但是我想在不同的项目之间重复使用构建产物。 通过在sharedlib上设置LIBRARY_OUTPUT_PROPERTY,我可以将生成的.so文件指向一个公共目录:
set_target_properties(sharedlib PROPERTIES LIBRARY_OUTPUT_NAME /commondir)
然而,我似乎无法对核心(OBJECT)库做同样的事情 - .o文件总是最终出现在(特定于项目的)生成cmake-build目录中。
这意味着每个项目都需要重新构建(大型)共享库...
我是否做错了什么,或者CMake还不能实现这一点?