8

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

例如,似乎没有调用 uic-generator 的 run 方法(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 不兼容?还是我只是用错了?尽管代码几乎是从examples/qt下的文件中逐字提取的。

我该如何使用它?谢谢你的帮助。

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

4

2 回答 2

1

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

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

bjamqt -examples 容易产生误解:main.cpp模块混淆了源文件头文件。

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

于 2013-04-13T14:09:15.717 回答
0

不是对您的问题的确切答案,而是建议:使用 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

供进一步参考

于 2012-06-05T09:30:59.317 回答