簡體   English   中英

使用CMake鏈接庫的調試版本

[英]Linking against a debug version of a library with CMake

鏈接我的lib的調試版本時遇到了一些問題。 我使用CMake創建一個庫:

project(myLib)
...
add_library(myLib SHARED ${SOURCES})

我啟動了兩次構建以獲得我的lib的發布和調試版本。 然后我將'd'后綴添加到調試庫的名稱並擁有myLib.dllmyLibd.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM