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

CMake building multiple libraries in the same project

我有一个特定的 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 上,它目前只构建静态库。


编辑: Link to CMake and Make log outputs.

解决方案是由@Tsyvarev 提出的,我犯了一个小错误。

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

无论是否正在构建特定项目,CMake 消息都会出现在 CMake 日志中。