cmake find_library版本号

时间:2015-07-22 14:18:29

标签: c++ c windows cmake

我有一个不同风格的库libsoci-3.2.2_core_s.a libsoci-3.2.2_core_sd.a等。一个是静态调试版本或静态版本以及其他一些版本(unicode,DLL等)。< / p>

现在当我使用这个cmake语句时,它会找到第一个库而不是正确的库。

set(CMAKE_PREFIX_PATH ${SOCI_LIBRARY_PATH})
find_library(SOCI_LIBRARY
    NAMES "soci-3.2.2_core_${UNICODE_FLAG}s${BUILD_TYPE_FLAG}"
    HINTS "${SOCI_LIBRARY_PATH}"
)
message("SOCI_SEARCHNAME: soci-3.2.2_core_s${BUILD_TYPE_FLAG}")
message("SOCI_FOUND: ${SOCI_LIBRARY}   soci-3.2.2_core_s${BUILD_TYPE_FLAG}")

目前我只有这个lib的静态版本,所以我把这个&#39; s&#39;硬编码。 BUILD_TYPE_FLAG是&#39; d&#39;对于调试或空的,在这种情况下它肯定是&#39; d&#39;但是cmake总是返回

d:\src\c\github\build\Datinator>make
SOCI_SEARCHNAME: soci-3.2.2_core_sd
SOCI_FOUND: d:/opt/soci/lib/libsoci-3.2.2_core_s.a   soci-3.2.2_core_sd
-- Configuring done
-- Generating done

所以我需要做什么,cmake找到正确的库版本,除了将它放在单独的目录中(我不喜欢)。

此外,cmake是否有某种方法可以找到版本号3.2.2本身,还是我必须对其进行硬编码?

0 个答案:

没有答案