我有一个特定的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上,它目前仅构建静态库。
CMake消息会出现在CMake日志中,而不管是否正在构建特定项目。