调试库通过CMake + msbuild链接到应用程序的发行版本

时间:2017-09-04 12:30:12

标签: cmake msbuild

我有一个CMake文件,它以下列方式链接两个库:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

当我使用CMake构建的MSVS2015解决方案文件运行msbuild时,调试库libGLESv2.lib链接到应用程序的发布版本,因此应用程序崩溃。应用程序的调试版本链接到调试版本的库,并且工作正常。

我使用的命令是:

target_link_libraries(${PROJECT_NAME} debug ${ANGLE_LIB_DIR}libEGLd.lib ${ANGLE_LIB_DIR}libGLESv2d.lib)
target_link_libraries(${PROJECT_NAME} optimized ${ANGLE_LIB_DIR}libEGL.lib ${ANGLE_LIB_DIR}libGLESv2.lib)

1 个答案:

答案 0 :(得分:0)

target_link_libraries命令中为单个配置(debug | optimized)指定库时,需要为每个库指定配置,例如

target_link_libraries(${PROJECT_NAME} debug ${ANGLE_LIB_DIR}libEGLd.lib debug ${ANGLE_LIB_DIR}libGLESv2d.lib)
target_link_libraries(${PROJECT_NAME} optimized ${ANGLE_LIB_DIR}libEGL.lib optimized ${ANGLE_LIB_DIR}libGLESv2.lib)

您可以使用以下命令启动构建,然后使用CMake:

cmake --build . --target ALL_BUILD --config Debug
cmake --build . --target ALL_BUILD --config Release