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

问题描述 投票:0回答:1

我有一个特定的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块中添加消息时,会在make构建过程中将其打印出来。该cmake文件的其余部分仅设置变量并声明项目名称。

有关调试此问题的任何技巧?在Windows和Linux上,它目前仅构建静态库。


编辑:Link to CMake and Make log outputs

cmake cross-platform shared-objects
1个回答
0
投票
之所以要构建静态库,是因为它是另一个构建目标的依赖项。我没有在SimulatorLib项目上明确运行“ Make”。

CMake消息会出现在CMake日志中,而不管是否正在构建特定项目。

© www.soinside.com 2019 - 2024. All rights reserved.