linux下怎么装qt交叉编译器

linux下怎么装qt交叉编译器,第1张

我用的是qt-everywhere-opensource-src-470这个版本。不同版本配置方法有些许不同,比如说配置文件的名字目录等。
1解压qt-everywhere-opensource-src-470targz
2修改配置文件(配置文件根据你开发板和编译工具不同而不同,不清楚你什么环境,这是我以前的配置,linux-arm-gnueabi-g++是我用的交叉编译工具)
qt-everywhere-opensource-src-470/mkspecs/qws/linux-arm-gnueabi-g++/qmakeconf文件修改为如下内容:
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%是编译不过的。有些文件需要根据你交叉编译环境进行修改。自己多尝试吧。我也是整了一两个个月,才慢慢知道的。

JFFS2 是一个开放源码的项目(主页:>嵌入应用:如何制作和使用Jffs2文件系统 (zhuan)本文主要介绍如何在AT91SAM9261EK板子上制作和使用jffs2文件系统,使用的是linux-2621内核。
首先配置MTD
$ make menuconfig
进入 Memory Technology Devices (MTD) --->
<> Memory Technology Device (MTD) support
[] Debugging
[] MTD partitioning support
[] Command line partition table parsing
[] Direct char device access to MTD devices
[] Caching block device access to MTD devices
RAM/ROM/Flash chip drivers ----->
<> Detect non-CFI AMD/JEDEC-compatible flash chips
<> Support for AMD/Fujitsu flash chips
Mapping drivers for chip access --->
[] Support non-linear mappings of flash chips
Self-contained MTD device drivers --->
[] Support for AT45 DataFlash
NAND Flash Device Drivers ---->
[] NAND Device Support
[] Support for NAND Flash /SmartMedia on AT91
File systems ---->
<> Second extended fs support
[] Inotify file change notification support
[] Inotify support for user space
<> Filesystem in Userspace support
Miscellaneous filesystems
<> Journalling Flash File System v2 (JFFS2) support
[] JFFS2 write-buffering support
<> Compressed ROM file system support (cramfs)
以上配置中没有列出的,都没选;其配置仅做参考,可根据自己的需要自行配置。
$ make all
其次制作mtd-util工具
从网上下载zlib-123targz 解压缩 $ cd zlib-123
$ /configure –prefix=/usr/local/arm/341/arm-linux --shared
修改Makefile如下:
CC=arm-linux-gcc
LDSHARED=arm-linux-ld -shared
$ make all
$ make install
注意:这里是安装在/usr/local/arm/341/arm-linux目录下
由于交叉编译mtd工具时需要zlibh文件,所以在编译之前先安装zlib库文件。
从网上下载 mtd-snapshot-20050519tarbz2 解压缩 $ cd mtd/util
修改该目录下的Makefile:
CROSS=arm-linux-
$ make all
然后将该目录下生成的 flash_erase,flash_eraseall, mkfsjffs2工具放在ramdisk 文件系统中(我这里放在/bin目录下),另外在 ramdisk文件系统的dev目录下要保证有mtd0~mtd9,mtdblock0~mtdblock9这些设备,如果没有可参考 ramdisk文件系统的制作,也可从pc机相同目录下拷贝,要加上文件属性。
另外,需要将/arm-linux/lib目录下的libzso, libzso1, libzso123文件拷贝到ramdisk文件系统的/lib目录下,否则mkfsjffs2工具不能使用。
最后将新生成的uImage和ramdisk文件下载到板子上,起动系统,使用命令 cat /proc/mtd 可以看到
dev: size erasesize name
mtd0: 00040000 00020000 "Partition 1"
mtd1: 0ffc0000 00020000 "Partition 2"
mtd2: 00420000 00000210 "spi00-AT45DB321x"
这里mtd0,mtd1是nandflash上的分区; mtd2是dataflsh上的分区,该分区上放有u-boot,uImageimg,ramdiskimg,所以我们这里可以使用空的nandflash上的两个分区。使用之前要先用工具flash_erase或者flash_eraseall擦除nandflash,具体使用的步骤如下:
# flash_erase /dev/mtd1
制作jffs2映像
# cd /var/tmp
# mkdir jffs2 (jffs2下的目录可以任意建)
# mkfsjffs2 –d jffs2/ -o jffs2img
# cp /var/tmp/jffs2/jffs2img /dev/mtdblock1
最后# mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可,使用结束可使用$ umount /mnt/mtd 卸载
如果只是当作普通的jffs2 来使用dataflash或者nandflash,可不必制作 jffs2映像,只需要最后一步,# mount -t jffs2 /dev/mtdblock1 /mnt/mtd即可。
AT91sam9263EK使用JFFS2根文件系统
在AT91sam9263EK成功配置了NFS根文件系统后,后来又想把JFFS2也移植到AT91sam9263EK上吧,说干就干。
1. 呵呵,其实很简单我使用的linux-2620内核里已经有jffs2 文件系统支持,选上jffs2即可
File systems --->
Miscellaneous filesystems --->
<> Journalling Flash File System v2 (JFFS2) support
(0) JFFS2 debugging verbosity (0 = quiet, 2 = noisy)
[] JFFS2 write-buffering support
[] JFFS2 summary support (EXPERIMENTAL)
[] JFFS2 XATTR support (EXPERIMENTAL)
[] JFFS2 POSIX Access Control Lists
[] JFFS2 Security Labels
[] Advanced compression options for JFFS2
[] JFFS2 ZLIB compression support
[] JFFS2 RTIME compression support
[ ] JFFS2 RUBIN compression support
JFFS2 default compression mode (priority)
选上MTD支持
Device Drivers --->
Memory Technology Devices (MTD) --->
<> Memory Technology Device (MTD) support
[ ] Debugging
<> MTD concatenating support
[] MTD partitioning support
< > RedBoot partition table parsing
[] Command line partition table parsing
<> ARM Firmware Suite partition parsing
--- User Modules And Translation Layers
<> Direct char device access to MTD devices
<> Caching block device access to MTD devices
<> FTL (Flash Translation Layer) support
<> NFTL (NAND Flash Translation Layer) support
[ ] Write support for NFTL
2. 从ttp://>

安装步骤

1、将压缩包arm-linux-gcc-443targz存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了

2、使用tar命令:tar zxvf arm-gcc-443targz将software文件夹下的arm-linux-gcc-443targz解压缩安装到当前目录下如下图

通过下图可以看到解压成功了,并且解压后的文件存放了/home/song/software/opt/FriendlyARM/toolschain/443文件夹下,如下图所示,这个存放路径可得记住,如下图

3、接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。记下上一步中的安装路径,使用命令:vim /etc/profile 编辑profile文件,添加环境变量。

在profile中最后一行添加: export PATH=$PATH:/home/song/software/opt/FriendlyARM/toolschain/443/bin 这个路径就是那个bin目录所在的路径,可能你的不一样,按照你实际的目录填就可以了,如下图32行

编写完保存就好了

4、使用命令:source /etc/profile 使环境变量生效

5、在终端上输入命令 arm-linux 再按Tab键,可以看到下图,说明环境变量设置成功了

6、使用命令:arm-linux-gcc -v 会出现下面的错误提示:/home/song/software/opt/FriendlyARM/toolschain/443/bin/arm-linux-gcc: 15: exec: /home/song/software/opt/FriendlyARM/toolschain/443/bin/arm-none-linux-gnueabi-gcc: not found

说是出现这种问题的原因是由于Ubuntu1204用的是64位的,解决方法就是使用命令:sudo apt-get install ia32-libs 装一些32位的库

7、待安装完32位的库之后,再使用命令:arm-linux-gcc -v,这一次就成功了,如下图

8、验证,编译一个helloc文件

使用命令:arm-linux-gcc helloc -o hello 看是否编译成功


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

原文地址: http://outofmemory.cn/yw/10558640.html

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

发表评论

登录后才能评论

评论列表(0条)

保存