使用 qmake/Qt Creator 链接调试/发布库

发布于 2024-07-27 20:26:03 字数 291 浏览 5 评论 0原文

我正在使用 Qt Creator 并有一个依赖于 C++ 静态库项目的 Qt GUI 项目。 我想将 GUI 应用程序的发布版本与 .lib 的发布版本链接起来,并将 GUI 应用程序的调试版本与调试 .lib 链接起来。 我已经找到了如何通过在 .pro 文件中包含如下行来向项目添加其他库:

LIBS += -L./libfolder -lmylib.lib

但我不明白如何可以使用不同的 -L 命令进行发布和调试版本。

qmake 是否支持这样做?

I am using Qt Creator and have a Qt GUI project that depends on a C++ static library project. I want to link the release version of the GUI app with the release build of the .lib and the debug release of the GUI app with the debug .lib. I have found out how to add additional libraries to the project by including a line like the following in my .pro file:

LIBS += -L./libfolder -lmylib.lib

But I cannot see how I can use a different -L command for release and debug builds.

Is there support in qmake to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

预谋 2024-08-03 20:26:03

当用户天真地使用 CONFIG += debugCONFIG += release 在调试和发布版本之间切换时,正常的

debug:LIBS += ...
else:LIBS += ...

解决方案就会中断(他们确实这么做了;没有人记得说<在 CONFIG += debug 之前代码>CONFIG -= release release_and_debug :)。

这是调试范围的规范方法:

CONFIG( debug, debug|release ) {
    # debug
    QMAKE_LIBDIR += "path/to/debug/lib"
} else {
    # release
    QMAKE_LIBDIR += "path/to/release/lib"
}

Cf. qmake 文档

编辑 2013-11-17:不要在 LIBS 中使用 -Lfoo。 规范的方法是将路径(不带 -L)添加到 QMAKE_LIBDIR

The normal

debug:LIBS += ...
else:LIBS += ...

solution breaks when users naively use CONFIG += debug or CONFIG += release to switch between debug and release builds (and they do; no-one remembers to say CONFIG -= release release_and_debug before CONFIG += debug :).

This is the canonical way to scope on debug:

CONFIG( debug, debug|release ) {
    # debug
    QMAKE_LIBDIR += "path/to/debug/lib"
} else {
    # release
    QMAKE_LIBDIR += "path/to/release/lib"
}

Cf. the qmake docs.

EDIT 2013-11-17: Don't use -Lfoo in LIBS. The canonical way is to add the paths (without the -L) to QMAKE_LIBDIR.

最好是你 2024-08-03 20:26:03

在你的项目文件中,你可以做这样的事情

debug {
    LIBS += -L./libfolder -lmydebuglib.lib
}

release {
    LIBS += -L./libfolder -lmyreleaselib.lib
}

如果 DEBUG 已添加到 CONFIG qmake 变量,则使用调试大括号内的位,如果 RELEASE 已添加到 CONFIG 变量,则包含释放括号内的类似内容。

您还可以使用“!debug”而不是“release”(即当调试不在配置中时)

您可以在 qmake 此处

In your project file you can do something like this

debug {
    LIBS += -L./libfolder -lmydebuglib.lib
}

release {
    LIBS += -L./libfolder -lmyreleaselib.lib
}

The bit inside the debug braces is used if DEBUG has been added to the CONFIG qmake variable, similarly stuff inside the release brackets is included if RELEASE has been added to the CONFIG variable.

You can also use "!debug" rather than "release" (i.e. when debug isn't in the config)

You can find more information on qmake here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文