【问题标题】:debug_and_release option didn't work for linuxdebug_and_release 选项不适用于 linux
【发布时间】:2014-02-05 06:57:52
【问题描述】:

我正在尝试在 Linux OS (Ubuntu 13.10) 下以调试和发布模式构建我的 qt-plugin,但在我看来 qmake 忽略了 CONFIG += debug_and_release 选项。我也尝试使用 CONFIG += build_all,但它没有用。当我在 Windows 上使用相同的选项时,Qt 生成了两个输出文件(例如 plugin.aplugind.a),但在 Linux 上我只得到其中一个。当我强制 QtCreator 以相反的模式(调试而不是发布)构建我的项目时,它会使用具有相同名称的目标文件覆盖已生成的目标文件。我哪里做错了?

【问题讨论】:

  • 您是否尝试致电make debugmake release
  • 不,我没有,我只是尝试配置我的 .pro 文件
  • 我认为,如果您在调用qmake 后尝试它,您将获得调试和发布版本。
  • 不,很遗憾。我在 Windows 上使用了相同的配置并获得了调试和发布输出,但在 Linux 上却没有
  • 请在 .pro 文件末尾添加message($${CONFIG}),运行 qmake 然后将 message() 的输出复制到此处,以便我们可以看到您的 CONFIG 变量的内容。

标签: linux qt qmake


【解决方案1】:

也许问题是在您的 .pro 文件中您应该设置不同的目标目录或不同的目标文件名。我不知道为什么,但看起来在 Windows 上生成到 Makefile 中的目标文件名不同,而在 Linux 上它们没有不同。您可以尝试更改目标目录或目标文件名以进行调试构建。 尝试任一

CONFIG(release, debug|release) {
    TARGET = plugin
} else {
    TARGET = plugind
}

CONFIG(release, debug|release) {
    DESTDIR = release
    OBJECTS_DIR = release/.obj
    MOC_DIR = release/.moc
    RCC_DIR = release/.rcc
    UI_DIR = release/.ui
} else {
    DESTDIR = debug
    OBJECTS_DIR = debug/.obj
    MOC_DIR = debug/.moc
    RCC_DIR = debug/.rcc
    UI_DIR = debug/.ui
}

【讨论】:

  • 不,很遗憾,这并不能解决我的问题。我确实有 2 个 OBJECTS_DIR / MOC_DIR / RCC_DIR(一个用于调试,一个用于发布建筑物),但只生成了一个目标文件。
  • @MikhailZimka 您是否同时将debug_and_releasebuild_all 添加到CONFIG?如果我只添加debug_and_release,那么make 只会在发布模式下构建项目。但如果我添加debug_and_releasebuild_all,那么make 首先在release 中构建我的小示例项目,然后在debug 模式下生成两个目标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-15
  • 2017-07-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多