cross-compiling - 如何知道我在 YOCTO 上使用的是什么版本的交叉编译器?
问题描述
我正在使用YOCTO项目为我的嵌入式板构建 Linux 发行版。构建完成后,我需要使用交叉编译器从我的主机编译应用程序以在我的板上执行。我刚刚输入了命令Bitbake meta-toolchain。现在我可以在我的主机上编译代码了。我只想知道我使用的编译器的名称和版本是什么?我怎么知道?有没有办法了解有关构建的工具链的更多信息?谢谢你。
解决方案
实际上,由于meta/recipes-devtools/gcc
包含可用的交叉编译器版本,但没有关于正在构建的版本的信息,您可以通过执行以下命令来检查当前的交叉编译器版本:
bitbake -e | grep "^GCCVERSION="
为了检查构建系统的工具链配置,您可以参考变量TCMODE
(它应该在发行版配置文件中设置;例如poky.conf
),您可以通过发出以下命令来检索其实际值:
bitbake -e | grep "^TCMODE="
然后,您将在 中找到GCCVERSION
以及其他工具链配置变量poky/meta/conf/distro/include/tcmode-${TCMODE}.conf
。请注意,上述文件中的变量可以在其他配置文件中被覆盖或重新分配,例如conf/local.conf
(这就是为什么bitbake -e
应该使用它来检索其实际值)。
如果您使用的是 SDK
如果您使用的是 Yocto 生成的 SDK,则可以执行<cross-compiler> --version
,例如:
arm-poky-linux-gnueabi-gcc --version
要检查构建系统中使用的交叉编译器的名称,您可以:
bitbake -e | grep "^export CC="
推荐阅读
- hadoop - hadoop中某些数据节点的IP映射错误
- c# - Serilog 不输出任何东西
- azure-devops - Azure DevOps VSTest@2 找不到正确的测试 .dll 来执行测试
- google-sheets - 有没有办法在 Google 表格中将文本反转为列?
- c# - c# 如何使用 YamlDotNet 序列化 DateTime 以便可以反序列化?
- tfs - TFS Work Item AssignedTo 下拉缺失项目
- r - 您如何在 tmap 中定位标题和图例?
- php - 为什么会话变量仅将最后一行数据发送到另一页
- sass - Nativescript 复合组件
- linux - 使用相同的目标和变量名调用 cmake target_link_libraries() 不会附加请求