gpt4 book ai didi

c++ - 使用 CMake 链接库的调试版本

转载 作者:太空狗 更新时间:2023-10-29 19:46:05 25 4
gpt4 key购买 nike

我在链接到我的库的调试版本时遇到了一些问题。我使用 CMake 创建一个库:

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

我启动构建两次以获得我的库的发布版本和调试版本。然后,我将“d”后缀添加到调试库的名称,并拥有 myLib.dllmyLibd.dll

在我的应用程序中,我明确链接到调试 dll:

project(myApp)
add_executable(myApp WIN32 ${SOURCES})
target_link_libraries(myApp myLibd.dll)

构建成功完成,但是当我使用 Dependency Walker 打开生成的 exe 文件时,我得到了一个 Unresolved 对 myLib.dll 文件的依赖,即使调试版本(myLibd.dll) 位于同一文件夹中。

那么,为什么我的应用程序会在运行时尝试使用我的库的发布版本?以及如何正确链接到调试版本?

最佳答案

您不应手动重命名该文件。使用 CMake 的 CMAKE_DEBUG_POSTFIX variableDEBUG_POSTFIX target property相反:

add_library(myLib SHARED ${SOURCES})
set_target_properties(mylib PROPERTIES DEBUG_POSTFIX "d")

[...]
add_executable(myApp WIN32 ${SOURCES})
target_link_libraries(myApp myLib)

关于c++ - 使用 CMake 链接库的调试版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17865072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com