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

第一,安装


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传输文件。

执行结果是

ubuntun 下使用QTcreator作为IDE建立arm-linux交叉编译环境_第1张图片

其实进一步,我们看一下这个可执行文件的属性

发现是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,再编译 是可以的。


ubuntun 下使用QTcreator作为IDE建立arm-linux交叉编译环境_第2张图片


但是不能在PC上运行,会有提示错误,因为这个二进制可执行文件是ARM平台上的,指令格式不一样。


执行结果如下。可见,与手动编译结果一样。


ubuntun 下使用QTcreator作为IDE建立arm-linux交叉编译环境_第3张图片



你可能感兴趣的:(LINUX,C)