繁体   English   中英

为 raspberry pi 设置 Qt 以进行交叉编译

[英]Setup Qt for cross compile for raspberry pi

我想使用 Qt creator 将一个项目从我的 linux 机器交叉编译到树莓派。 现在我已经设置了一个带有编译器(我测试过可以工作)和一个 sysroot 的工具包。 但是,当我尝试在 Qt Creator 中编译一个简单的“Hello world”示例时,出现错误:

#include <iostream>

using namespace std;

int main()
{
    cout << "Hallo!!!" << endl;
    return 0;
}

/usr/include/c++/5/iostream:38: 来自 /usr/include/c++/5/iostream:38, ~/sysroot/usr/include/features.h:364: 错误: sys/cdefs.h: 否这样的文件或目录

我看到 Qt 尝试使用以下文件进行编译:

/usr/include/c++/5/iostream

但是它应该使用 ~/sysroot/usr/include/c++/6/iostream

在我使用的工具包中,我将 ~/sysroot 指定为 sysroot,但它似乎使用了其他 C++ 包含。 我怎样才能改变这个?

编辑:我找到了解决问题的方法。 请参阅下面的答案。 但是我不确定这是否是最好的解决方案。 我有更好的方法,请告诉我。

我发现了问题。 默认的 qmake 构建步骤将参数“-spec linux-g++”添加到对 qmake 的调用中。 然而,这会导致选择错误的编译器。 由于我无法从 qmake 构建步骤中删除参数,因此我删除了 qmake 步骤并添加了一个调用 qmake 并省略 -spec 参数的自定义构建步骤。 这似乎有效,但感觉有点脏。 也许有更好/更清洁的解决方案?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM