尝试链接到我的库时如何使 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 使用调试库!您需要修复库的项目文件,以便调试版本可用,并带有正确的前缀。
另请注意,手动调整构建位置通常会适得其反。
我有一个 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 使用调试库!您需要修复库的项目文件,以便调试版本可用,并带有正确的前缀。
另请注意,手动调整构建位置通常会适得其反。