红联Linux门户
Linux帮助

ubuntu下使用QTcreator作为IDE建立arm-linux交叉编译环境

发布时间:2016-08-16 09:39:31来源:linux网站作者:qianshanxue11
第一,安装
poky-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.7.3.sh
会自动安装到/opt下。交叉编译工具在/opt/poky/1.7.3/sysroots/x86_64-pokysdk-linux/usr/bin目录下
对于其他的toolchain 一般也可以解压在opt目录下
tar -xvf gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar.tar -C /opt
 
第二,设置环境变量
三个方法
1:直接在命令行下,export PATH =$PATH /opt/poky/1.7.3/sysroots/x86_64-pokysdk-linux/usr/bin
缺点是重启无效
2:修改/etc/profile 重启生效或者source /etc/profile
3:修改.bashrc vi /root/.bashrc 
修改好之后在terminal里,arm-poky-按TAB按键可以补全,说明。环境变量设置成功
environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi这个文件里是如何设置环境变量。
或者直接在命令行source /opt/poky/1.7.3/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi  也可以,但是每次开机都需要重新source很麻烦。
想写在init.d/rc.local里面,写好后重启并没有生效。这个问题需要研究。尝试很多。
其中:
export ARCH=arm
export CROSS_COMPILE=arm-poky-linux-gnueabi-
export PATH=/opt/poky/1.7.3/sysroots/x86_64-pokysdk-linux/usr/bin:/opt/poky/1.7.3/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi:$PATH
这三个是比较普遍重要的。
 
第三,命令行下编译测试
当测试的时候发现其实没这么简单,还是出错了。
在网上搜索信息。
http://www.nxpic.org/module/forum/thread-603685-1-1.html
这个网站告诉我 的信息很有用,按照这个方法解决了问题。
$CC main.c -o main
之后复制到开发板上运行。我是在虚拟机上交叉编译,windows设置与开发板同一网段的IP,然后PING通之后,SecureCRT ssh 连接,使用SecureFX传输文件。
执行结果是
ubuntu下使用QTcreator作为IDE建立arm-linux交叉编译环境
其实进一步,我们看一下这个可执行文件的属性
发现是ELF格式的。
这个格式的文件是怎样的规则,其实是很有研究的。
 
第四,在Qtcreator里添加交叉编译工具
为什么使用Qtcreator呢,因为之前在学QT,其实Qtcreator为开发板,编译QT程序,与编译这样的C程序,使用的是同样的交叉编译工具。
做C项目时候,初学使用VI写大程序不顺手,所以用IDE方便些。那么code block也可以用。而且更轻量。
设置好,如果直接启动,交叉编译程序时候也有问题,
c,command not found
这时候在Qt5.6.0/Tools/QtCreator/bin/qtcreator.sh
添加一句:
source /opt/poky/1.7.3/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
然后以这个qtcreator.sh启动QT,再编译是可以的。
ubuntu下使用QTcreator作为IDE建立arm-linux交叉编译环境
但是不能在PC上运行,会有提示错误,因为这个二进制可执行文件是ARM平台上的,指令格式不一样。
执行结果如下。可见,与手动编译结果一样。
ubuntu下使用QTcreator作为IDE建立arm-linux交叉编译环境
 
本文永久更新地址:http://www.linuxdiyf.com/linux/23344.html