Boost.Build/bjam and Qt

Boost.Build/bjam and Qt

本文关键字:and Qt bjam Build Boost      更新时间:2023-10-16

>我正在尝试设置一个 Boost.Build .jamroot 文件来编译 Qt 4.8 项目,但它似乎忽略了 .ui 文件和应该为 moc:ed 的.cpp文件。我尝试在qt4.jam中四处寻找,添加更多ECHO:s,但我不知道该在哪里查找。

例如,似乎没有调用uic生成器的运行方法(init确实如此),但我认为应该是。

我的 jamroot 文件看起来像这样:

import qt4 ;
if ! [ qt4.initialized ]
{
    ECHO "oh nooo" ;
}
import cast ;
exe application :
    # For example
    [ cast _ moccable-cpp : ./src/something.cpp ] 
    [ glob-tree *.ui  : .svn ] 
    ;

我得到的唯一输出是:

>bjam
warn: Unable to construct ./application
...found 1 target...

如果我运行 bjam --debug-configuration,qt4.jam 会打印出我的 Qt 安装的所有正确路径。

怎么了?也许它与Qt 4.8不兼容?还是我只是用错了?尽管代码几乎是从 example/qt 下的文件逐字获取的。

如何使用它?感谢您的任何帮助。

编辑:将gcc 4.7与 http://nuwen.net/mingw.html 的MinGW发行版9.0一起使用,以及Boost 1.49.0附带的Boost.Build。

替换 ./src/something。cpp./src/something。HPP,即:

[ cast _ moccable-cpp : ./src/something.hpp ]

BjamQt 示例容易产生误解:主模块.cpp模块混淆了源文件头文件。

让我们记住通常moc进程头文件(带有Q_OBJECT类声明的文件:在大多数情况下,源文件不包含它)

不是您问题的确切答案,而是一个建议:使用qmake怎么样?它也适用于普通的 c++ 构建。如果你使用很多Qt,qmake非常方便,尽管文档可以改进。

http://labs.qt.nokia.com/2008/04/16/the-power-of-qmake/

http://doc.qt.nokia.com/4.4/qmake-manual.html

http://www.qtcentre.org/wiki/index.php?title=Undocumented_qmake

http://paulf.free.fr/undocumented_qmake.html

http://www.kde.gr.jp/~ichi/qt/qmake-manual-6.html

供进一步参考