【发布时间】:2013-07-25 18:17:55
【问题描述】:
我在链接到我的库的调试版本时遇到了一些问题。我用 CMake 做一个库:
project(myLib)
...
add_library(myLib SHARED ${SOURCES})
我启动构建两次以获得我的库的发布和调试版本。然后我在调试库的名称中添加“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 的发布版本?以及如何正确链接到调试版本?
【问题讨论】:
-
你在使用 MinGW 吗?另外,如何将
myLib.dll重命名为myLibd.dll? -
是的,我使用 MinGW。我在编译时手动重命名 lib 文件。