Linux系统中如何安装交叉编译器?

Linux系统中如何安装交叉编译器?,第1张

交叉编译器通常以 arm-none-linux-gnueabi.tar.bz2 这样的名称发布(不同厂家的不同开发平台,交叉编译工具链的实际名称可能有所差别,请以实际为准),解压命令:

vmuser@Linux-host: ~$ tar xjvf arm-none-linux-gnueabi.tar.bz2

如果希望解压到一个指定的目录,可以先将 arm-none-linux-gnueabi.tar.bz2 压缩包复制到目标目录,然后进入目标目录再运行解压命令,也可以在任意目录解压,通过-C 指定目标目录。假定希望解压到“/home/ctools/”目录,则命令如下:

vmuser@Linux-host: ~$ tar xjvf arm-none-linux-gnueabi.tar.bz2 -C /home/ctools/

在终端中添加环境变量,需要每次打开终端都设置,也很麻烦。可以考虑将设置的过程添加到系统配置文件中。/etc/profile 是系统全局的配置文件,在该文件中设置交叉编译器的路径,能够让登录本机的全部用户都可以使用这个编译器。

打开终端,输入“sudo vi /etc/profile”命令,打开/etc/profile 文件,在文件末尾添加:

export PATH=$PATH:/home/ctools/arm-2011.03/bin/

然后输入“. /etc/profile”(点+空格+文件名),执行 profile 文件,使刚才的改动生效。如果没有书写错误,此时打开终端,输入 arm-none-linux-gnueabi-,然后按键盘 TAB 键,同样可以看到很多 arm-none-linux-gnueabi-开头的命令。

这些周立功那边很多的,不知道你有没去看过。

安装Arm-Linux交叉编译器正确的方法:

首先我用的是天嵌自带的交叉编译器EABI-4.3.3_EmbedSky_20100610.tar.bz2,

1. 首先建一个存放交叉编译器的目录,我建的目录的绝对路径是:/opt/TQ (TQ就是我建的目录)

2. 解压EABI-4.3.3_EmbedSky_20100610.tar.bz2:

tar xjvf EABI-4.3.3_EmbedSky_20100610.tar.bz2

该文件解压后,就会在TQ这个目录中生成两个目录:opt,usr;

3. 添加环境变量 :

在/etc/profile中添加

# Path manipulation

if [ "$EUID" = "0" ]then

pathmunge /sbin

pathmunge /usr/sbin

pathmunge /usr/local/sbin

pathmunge /opt/TQ/opt/EmbedSky/4.3.3/bin/

fi

添加完后 source /etc/profile 使他生效;

4. 在控制台执行以下命令:

cp /opt/TQ/opt/EmbedSky/4.3.3/bin/usr/local/arm

总结:第3步和第4步这两步少了一步就会出现以下错误:

arm-none-linux-gnueabi-gcc: error trying to exec 'cc1': execvp: No such file or directory

经验:若在解压时 用下面的命令:

tar xjvf EABI-4.3.3_EmbedSky_20100610.tar.bz2 -C/

就可以省去第四步

-C / :的意识是解压到指定目录,这里指根目录,由于该压缩包内部的目录结构本身包含usr/local/arm,所以解压到根目录实际上就是把文件解压到/usr/local/arm文件夹下。

我用的是qt-everywhere-opensource-src-4.7.0这个版本。不同版本配置方法有些许不同,比如说配置文件的名字目录等。

1.解压qt-everywhere-opensource-src-4.7.0.tar.gz

2.修改配置文件(配置文件根据你开发板和编译工具不同而不同,不清楚你什么环境,这是我以前的配置,linux-arm-gnueabi-g++是我用的交叉编译工具)

qt-everywhere-opensource-src-4.7.0/mkspecs/qws/linux-arm-gnueabi-g++/qmake.conf文件修改为如下内容:

QMAKE_CC

QMAKE_CXX

QMAKE_LINK

QMAKE_LINK_SHLIB

QMAKE_AR

QMAKE_OBJCOPY

QMAKE_STRIP

QMAKE_INCDIR

QMAKE_LIBDIR

QMAKE_LIBS

把这配置都指定清楚,有编译器,lib等,看名字应该都能理解。

3.执行。

./configure -prefix-install -prefix /opt/qt4 \

-release -opensource -shared -embedded arm \

-no-fast -largefile -exceptions \

-stl -no-qt3support \

-xmlpatterns -no-multimedia -no-audio-backend \

-no-phonon -no-phonon-backend \

-svg -no-webkit -javascript-jit \

-script -scripttools -declarative \

-no-mmx -no-3dnow -no-sse -no-sse2 \

-qt-zlib -qt-gif -qt-libtiff \

-qt-libpng -qt-libmng -qt-libjpeg \

-no-openssl \

-xplatform qws/linux-arm-gnueabi-g++ \

-qt-mouse-tslib -qt-mouse-pc -no-mouse-linuxtp -no-neon

这里给你的例子configure,你要的肯定和我的不一样,我们需求环境都不同。每个配置项的意思不可能这里都给你说清楚,你可以--help自己理解。

4.执行make。

当然,这样你99%是编译不过的。有些文件需要根据你交叉编译环境进行修改。自己多尝试吧。我也是整了一两个个月,才慢慢知道的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/8992652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存