CMake 在同一项目中构建多个库



我有一个特定的CMake项目,我想构建为静态库和共享对象(仅限Linux(。CMake 文件的相关部分:

...
# Static lib
add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADERS})
# Build shared object in Linux only
if(UNIX)
set_target_properties(${PROJECT_NAME} PROPERTIES POSITION_INDEPENDENT_CODE ON)
add_library("${PROJECT_NAME}_SHARED" SHARED ${SOURCES} ${HEADERS})
endif(UNIX)
link_directories(${ILI_EXTERNAL_LIB_DIRS})
target_link_libraries(${PROJECT_NAME} ${ILI_EXTERNAL_LIBS} IliLib PlantModel)

我可以弄清楚为什么没有构建共享对象,当我在 Unix 块中添加一条消息时,它会在构建过程中打印出来。此 cmake 文件的其余部分仅设置变量并声明项目名称。

有关如何调试此问题的任何提示?在Windows和Linux上,它目前只构建静态库。


编辑: 链接到 CMake 和 制作日志输出。

解决方案是由我@Tsyvarev微不足道的错误提出的。

正在构建静态库,因为它是另一个构建目标的依赖项。我没有在SimulatorLib项目上明确运行"Make"。

CMake 消息显示在 CMake 日志中,而不考虑是否正在生成该特定项目。

最新更新