2017-09-04 41 views
1

我有一個CMake的文件連接兩個庫以下列方式:調試庫鏈接到與C進行應用程序的發佈版本+的MSBuild

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) 

當我運行與CMake的內置MSVS2015解決方案文件的MSBuild ,調試庫libGLESv2.lib鏈接到應用程序的發佈版本,所以應用程序崩潰。調試版本的應用程序鏈接到調試版本的庫和工作正常。

我使用的命令是:

cmake ..\..\examples\src\MyApp\ -DCMAKE_INSTALL_PREFIX=D:\Repos\install -DCMAKE_PREFIX_PATH=C:\Qt\5.8\msvc2015\lib\cmake 
msbuild MyApp.sln /property:Configuration=Debug 
msbuild MyApp.sln /property:Configuration=Release 
+0

您需要預先設置每一個庫以'debug'或'optimized'關鍵字。 – vre

+0

不錯!非常感謝你! – Koban

回答

0

當在target_link_libraries命令用於單個配置指定庫(調試|優化)需要指定爲每一個庫,例如配置

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 
相關問題