尝试链接到我的库时如何使 Qt 应用程序不附加 D

How make Qt app not append D when trying to linking to my library

我有一个 Qt 应用程序和几个使用 .pro 文件构建的库。在为 windows 构建时,我想在调试模式下构建我的应用程序,因此 link 以调试我的库版本。所有如果这里是静态的 linking。我构建我的库的调试版本。一切都很好。 pdb 文件也在构建文件夹中生成。

但是当我构建我的应用程序时,它会抱怨以下错误,将 D 附加到我的库名称 !!!

error: LNK1104: cannot open file 'MyLibD.lib'

它应该寻找 MyLib.lib 而不是 MyLibD.lib,正如我在 MyApp.pro 中指定的那样。以下是我如何 link 在 MyApp.pro

到我的图书馆
LIBS           += -L$$MyLib_build_location -lMyLib
Release:win32: LIBS += -L$$MyLib_build_location -lMyLib
Debug:win32: LIBS += -L$$MyLib_build_location -lMyLib
INCLUDEPATH    += $$MyLib_include_location/
DEPENDPATH     += $$MyLib_include_location/
unix:PRE_TARGETDEPS += $$MyLib_build_location/MyLib.a
Release:win32:PRE_TARGETDEPS += $$MyLib_build_location/MyLib.lib
Debug:win32:PRE_TARGETDEPS += $$MyLib_build_location/MyLib.lib

为什么 windows OS 期望我的库在调试模式下附加 D?如何让 Qt 查找与库的 .pro 中指定的 TARGET 相同的名称?

请注意,我使用的是 Visual Studio 2015 社区版以及用于 C++ 编译器的 Qt Creator

您正在构建应用程序的调试版本:它需要 link 使用调试库!您需要修复库的项目文件,以便调试版本可用,并带有正确的前缀。

另请注意,手动调整构建位置通常会适得其反。