c++ - Boost.Build/bjam 和 Qt

标签 c++ qt bjam boost-build

我正在尝试设置一个 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。

最佳答案

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

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

bjamqt-examples 容易引起误解:main.cpp 模块混淆了源 header 文件。

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

关于c++ - Boost.Build/bjam 和 Qt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10383613/

相关文章:

c++ - 具有快速插入和索引的容器?

objective-c - 如何在 Mac OS X 上获取拖放到应用程序二进制文件上的文件列表?

ios - 为 Boost Bjam iOS 指定 IPHONEOS_DEPLOYMENT_TARGET

c++ - 从 C++ 方法返回多种类型?

c++ - 计算高效的 C++ - 一般阅读

c++ - Qt 即时响应键盘按下的键

c++ - 使用 Boost.build 构建并链接到 boost

c++ - 如何解码 boost 库命名?

c++ - fstream 从二进制文件末尾删除 N 个字节

c++ - 在 Qt 中使用 SQLite