aarch64-linux-gnu-gcc交叉编译链工具

aarch64-linux-gnu-gcc交叉编译工具链

自己记录学习所用。

安装

按下 CTRL +ALT+T打开控制台,输入如下指令安装。

// 安装.c转二进制文件的交叉编译链工具
sudo apt-get install gcc-aarch64-linux-gnu

// 安装.cpp转二进制文件的交叉编译链工具
sudo apt-get install g++-aarch64-linux-gnu

编译可执行文件

建立一个.c文件和.cpp文件,可以通过vscode等文件建立,也可以通过下面的指令建立。

vim hello.c

建立一个hello.c文件并进入,按i进入插入模式。
写一个简单的程序。

#include <stdio.h>

int main(void)
{
	printf("Hello World!-c \n");
}

再按ESC键,并键入:wq保存并退出。

同样,建立.cpp文件

vim hello.cpp

输入程序

#include <iostream>
using namespace std;
int main()
{
    cout << "Hello, world!" << endl;
    return 0;
}

输入ls查看当前文件夹下文件,输入ls -l命令查看当前文件夹下文件的详细信息,由于建立的新文件夹,所以当前只有两个文件。
文件显示
尝试运行,发现错误。

./hello.c

bash: ./hello.c: 权限不够

显示权限不够。
输入下面的命令给与权限。

chmod 777 hello.c hello.cpp

再运行还是出错,这是因为.c和.cpp文件并不能直接运行,需要先编译为可执行文件,命令如下。

//编译.c文件,-o后面的是编译后文件的名字
gcc -o hello_c hello.c
//编译.cpp文件,-o后面的是编译后文件的名字
g++ -o hello_cpp hello.cpp

编译结果如下图所示:
编译结果
运行结果如下图所示:
运行编译后的可执行文件
但这只是我们的系统能运行,无法在ARM中运行,因此需要进行交叉编译链工具进行交叉编译。

交叉编译

代码如下所示:

// 编译.c到2进制
aarch64-linux-gnu-gcc hello.c -o 2_hello_c

// 编译.cpp到2进制
aarch64-linux-gnu-g++ hello.cpp -o 2_hello_cpp

显示如下:
交叉编译
现在编译就完成了,可以将2进制文件发送给开发板。

若安装,但显示未找到相应命令,则需要添加环境变量,临时添加可以直接在中断中输入下面命令。/usr/bin是安装时存放的命令位置。

#export PATH=$PATH:/usr/bin

推荐在home目录处的终端中使用下面的命令,修改profile文件,添加环境变量。

vim /etc/profile

i进入插入模式。在文件最下面输入下面一行:

expert PATH=$PATH:/bin:usr/bin

不同环境位置处用:隔开。按ESC退出插入模式,输入:wq保存退出。
若无法保存应该使用下面的命令,以管理员权限进入profile文件。

sudo vim /etc/profile

若未生效,可以在终端中输入下面的命令立即生效。

#source /etc/profile
  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值