问题标签 [gcc-toolchain]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
154 浏览

gcc - 无法构建 Movesense 传感器固件 2.0 预览版

我面临与此处相同的问题:使用 LTO 版本 6.0 而不是预期的 8.1 生成

我尝试使用 docker 入门中的信息构建新的 2.0 传感器固件。启动后:

ninja pkgs

编译失败并显示库“libmovesense-coreD.a”是使用 LTO 版本 6 构建的,但预期是版本 8.1。

我还在 Ubuntu 19.10 上手动安装了 cmake 3.18.1 和 arm 工具链 2017_q4,但由于 LTO 包装器故障导致它在步骤 8/12 停止。

(...下面的一些行...)

我只是从 Movesense 主页复制了 cmake 命令并添加了 sample_app 的目录。这是我从 docker-container 中的 movesense/myBuild/ 开始的代码:

为了提供一些信息,这是 cmake 的结果:

我不关心“ABI info - failed”警告,因为最后一行说构建文件已被写入。也许这有点愚蠢。

在这里,“ninja pkgs”命令的完整输出(我删除了上面的那个):

我只尝试在我的电脑上手动安装和构建 cmake 和 arm-toolchain,导致 docker-build 失败。

谢谢您的帮助!

Ps 在 2.0 固件预览版的“工具设置”部分中,指向您的 Bitbucket 存储库的链接错误(第二个浅灰色框)。

0 投票
0 回答
40 浏览

docker - 在 x86_64 上运行的 ARM 的 Docker 映像中使用交叉编译器覆盖本机编译器

现在,借助qemu-static. 粗略地说,这种方法允许 Linux 启动器检测二进制的 ARM 体系结构并将其传递给仿真器,为用户无缝地传递。尽管很多人甚至似乎在 CI 中部署了这种方法,但它在执行许多常规任务(例如编译)时速度很慢。简单的项目可能需要几个小时才能通过模拟器进行编译。这可以改进吗?

似乎有一个微不足道的改进想法。为什么不在 Docker 容器中使用 x86_64-arm 交叉编译器覆盖 ARM 编译器?它应该可以通过 Docker 覆盖实现,并且应该提供原生工具链的性能和效率。到目前为止,我没有看到有人这样做。

为了隐藏 ARM 编译器并用交叉编译器覆盖它,许多文件夹和单个文件必须被屏蔽(可以从包列表中获取)。你会如何建议执行这样的叠加?