如何知道我在YOCTO上使用的交叉编译器版本?

时间:2019-07-01 09:01:09

标签: cross-compiling embedded-linux yocto toolchain

我正在使用 YOCTO 项目为嵌入式板构建Linux发行版。构建完成后,我需要使用交叉编译器从主机上编译要在板上执行的应用程序。我刚刚输入了命令 Bitbake meta-toolchain 。现在,我可以在主机上编译代码了。我只想知道我使用的编译器的名称和版本是什么?我怎么知道呢?有没有办法了解有关所构建工具链的更多信息?谢谢。

2 个答案:

答案 0 :(得分:2)

首先,最好编写一个配方来构建应用程序,而不是手工构建。

编译器为GCC,因此您可以通过查看meta/recipes-devtools/gcc来查看其版本。

答案 1 :(得分:2)

实际上,由于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="

有关更多信息,请参见https://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#dev-debugging-viewing-variable-values