0

我正在使用 CMake 2.8.8 和ExternalProject模块。CMake 检索项目的源文件并正确构建它们(导致unix 上project.aproject.so文件)。我想总是使用动态库。我怎样才能做到这一点并且仍然是跨平台的?

我试过了

list(
    APPEND foo_LIBRARIES
    ${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}project${CMAKE_FIND_LIBRARY_SUFFIXES}
)

但这不起作用,因为{CMAKE_FIND_LIBRARY_SUFFIXES}它是一个.a;.so.

list(
    APPEND foo_LIBRARIES
    ${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}project.so
)

有效,但仅适用于 Unix 系统。有没有一种干净的方法来实现这一目标?

4

1 回答 1

2

鉴于is just ,您可以执行以下操作WIN32${CMAKE_FIND_LIBRARY_SUFFIXES}.lib

set(ProjectSuffix ${CMAKE_FIND_LIBRARY_SUFFIXES})
list(REMOVE_ITEM ProjectSuffix .a)
list(APPEND foo_LIBRARIES
    ${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}project${ProjectSuffix})
于 2012-11-16T22:29:28.210 回答