跨平台交叉编译工具链验证【20220729】

查看 GLIBC 版本

首先确认目标平台支持的 GLIBC 版本,例如:

target:~$ strings /lib/*gnu*/libm.so.6 | grep GLIBC
GLIBC_2.17
GLIBC_2.18
GLIBC_2.23
GLIBC_2.24
GLIBC_2.25
GLIBC_2.27
GLIBC_2.28
GLIBC_2.29
GLIBC_2.31
GLIBC_PRIVATE

可以看出,支持的 GLIBC 版本有 2.17、2.18、2.23-2.25、2.27-2.29、2.31,知道支持版本后就可以自行编译或下载预编译好的 toolchain。

安装交叉编译工工具链

预编译的 toolchain 可以在 linaroarm 官网下载。

这里去 linaro 官网下载 glibc 2.25 版本的工具链, https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-i686-mingw32_aarch64-linux-gnu.tar.xz

解压在 Windows 系统的任意路径下,解压后进入 bin 目录,找到 xxx-gnu-gcc.exe 可执行文件,复制全路径备用

跨平台编译测试

这里使用简单的 helloworld 程序测试

创建 main.c 文件,输入如下内容:

#include <stdio.h>

int main()
{
   printf("Hello World !\n");
   return 0;
}

保存后,在 main.c 文件所在路径下打开命令提示行,执行如下命令编译 C 源代码。

PS D:\helloworld> D:\sdk\gnu-toolchain\gcc-linaro-7.5.0-2019.12-i686-mingw32_aarch64-linux-gnu\bin\aarch64-linux-gnu-gcc.exe -o .\helloworld main.c

编译成功结束后,会在当前路径下生成目标平台的可执行文件 helloworld 将其复制到目标平台上执行即可看到运行结果

target:~$ ./helloworld
Hello World !

至此,就完成了交叉编译工具链的基本验证

最新文章

最近回复

  • muumlover: 你好
  • 测试人: 你好呀
  • ww: 看了这么多就这个有用,牛逼
  • 未知狐: 啊确实,话说,博主博客好像没有评论回复邮件提醒,可以试试Comm...
  • Skogen: 系统的差异,不同的Linux发行版集成的包也不一样,安装难度也就...
  • Skogen: 系统是 Debian9,理论上Debian系的系统应该通用的。
  • 2247: 请问用的是什么系统?
  • 未知狐: 受教了,我比博主运气好点,是因为不理解命令参数等设定而频繁失败,...
  • Skogen: 23
  • Skogen: asd

分类

标签

归档

其它