我正在尝试设置一个Boost.Build .jamroot文件来编译Qt 4.8项目,但它似乎忽略了.ui文件和应该是moc:ed的.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。
答案 0 :(得分:1)
将 ./ src / something。 cpp 替换为 ./ src / something。 hpp ,即:
[ cast _ moccable-cpp : ./src/something.hpp ]
bjam 的 qt -examples往往会产生误解: main.cpp 模块混淆了来源和标题文件。
让我们记住 moc 处理头文件(带有 Q_OBJECT 的类声明的文件:在大多数情况下源文件不包含它)
答案 1 :(得分: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
进一步参考