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

Gon*_*onn 5 cross-compiling embedded-linux toolchain yocto

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

dan*_*lor 6

实际上,由于meta/recipes-devtools/gcc包含可用的交叉编译器版本,但没有有关正在构建的交叉编译器版本的信息,因此您可以通过执行以下命令来检查当前交叉编译器版本:

bitbake -e | grep "^GCCVERSION="
Run Code Online (Sandbox Code Playgroud)

为了检查构建系统的工具链配置,您可以引用该变量TCMODE(它应该在发行版配置文件中设置;例如poky.conf),您可以通过发出以下命令来检索其实际值:

bitbake -e | grep "^TCMODE="
Run Code Online (Sandbox Code Playgroud)

然后,您将在 中找到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
Run Code Online (Sandbox Code Playgroud)

要检查构建系统中使用的交叉编译器的名称,您可以:

bitbake -e | grep "^export CC="
Run Code Online (Sandbox Code Playgroud)

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