【问题标题】:Compiling Qt project in a directory outside of the install directory在安装目录之外的目录中编译 Qt 项目
【发布时间】:2011-01-18 07:59:04
【问题描述】:

我一直在使用 OpenCV 开发一个项目,现在我准备升级我的用户界面,从使用 cvWaitKey() 来获得按键和模拟带有轨迹栏的按钮。哈。所以我决定使用Qt。

我想在我一直使用的同一目录中继续开发,当然,它位于 Qt 安装目录之外,C:\Qt\2010.05\qt。使用“Qt 命令提示符”,我可以在 C:\Qt\2010.05\qt 内外的目录中编译 Hello Notepad 示例,即 C:\Qt\2010.05\qt\abc 和 C:\Qt \2010.05\abc.

然而,虽然在 C:\ ... \qt 下编译会在调试和发布目录中生成可执行文件,但在其外部编译只会生成调试可执行文件以及 .o 文件(目标代码?)。我使用 WinMerge 做了一些比较,发现以下几行(除其他外)在两个 makefile 中不同(使用qmake -projectqmake 生成):

qt内部\

first: all  
install: debug-install release-install  
uninstall: debug-uninstall release-uninstall  

qt外\

first: debug  
install: debug-install  
uninstall: debug-uninstall  

这显然是问题所在(qmake -project 生成的 .pro 文件仅在时间戳上有所不同)。我确信有一个简单的答案可以解决导致此问题的原因......我希望有一个简单的答案来解决我如何解决它。另外,我打算使用一些QtCreator;希望 IDE 的解决方案与命令行编译器相同。

谢谢!

诺兰

ps:我不认为这是同一个问题:Qmake does not support build directories below the source directory ...无论如何,我不确定我是否理解答案。

【问题讨论】:

    标签: qt qt4 qmake


    【解决方案1】:

    你应该可以添加

    CONFIG += release
    

    到您的 .pro 文件,为发布目标构建。还有

    CONFIG += debug_and_release
    

    iirc.

    QtCreator 有一个用于在构建目标之间切换的 GUI 元素,如果您发现需要经常来回切换,可以尝试使用该应用程序打开 .pro。

    【讨论】:

    • 不错,现在我们已经完成了:)
    • 但是当我移出目录时为什么会发生变化?到目前为止,我还没有找到可以同时构建调试和发布的选项或选项组合(即,debug_and_release 没有这样做;CONFIG += debugCONFIG += release 也没有)。不过,我可以一次构建一个并使用 CONFIG 控制哪个。
    • 在查看 qmake 手册的 CONFIG 变量条目后:doc.qt.nokia.com/4.7/qmake-variable-reference.html#config ,我看到如果我指定 debug_and_release 然后使用 make all 或指定 CONFIG += build_all,我可以构建发布和调试版本。但奇怪的是,.o 文件的保存方式会根据目录的位置而有所不同。另外,我仍然想知道为什么 qmake 关心它的目录在哪里。
    猜你喜欢
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 2011-02-07
    相关资源
    最近更新 更多