[英]Linking against a debug version of a library with CMake
鏈接我的lib的調試版本時遇到了一些問題。 我使用CMake創建一個庫:
project(myLib)
...
add_library(myLib SHARED ${SOURCES})
我啟動了兩次構建以獲得我的lib的發布和調試版本。 然后我將'd'后綴添加到調試庫的名稱並擁有myLib.dll
和myLibd.dll
。
在我的應用程序中,我明確鏈接到調試DLL:
project(myApp)
add_executable(myApp WIN32 ${SOURCES})
target_link_libraries(myApp myLibd.dll)
構建成功完成,但是當我使用Dependency Walker打開生成的exe文件時,我得到一個未解析的myLib.dll
文件依賴項,即使調試版本( myLibd.dll
)位於同一文件夾中。
那么,為什么我的應用程序試圖在運行時使用我的lib的發布版本? 我如何正確鏈接調試版本?
您不應手動重命名該文件。 CMAKE_DEBUG_POSTFIX
使用CMake的CMAKE_DEBUG_POSTFIX
變量或DEBUG_POSTFIX
目標屬性 :
add_library(myLib SHARED ${SOURCES})
set_target_properties(mylib PROPERTIES DEBUG_POSTFIX "d")
[...]
add_executable(myApp WIN32 ${SOURCES})
target_link_libraries(myApp myLib)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.