iconv的arm交叉编译

我在使用iconv函数时出现一些问题,就是在pc上测试是好用的,但是编译到arm板子上转换出来的字符就是空。

在网上查找结果应该是交叉编译链中的libc库有些问题,所以就想到解决的方法

第一种方法更新libc库

比较麻烦,因为我们用的是编译好的交叉编译器,这中方法需要重新编译生成交叉编译器,并且也需要使用新编译生成的交叉编译工具重新编译应用程序,因此本方法代价太大,
采用第二种方法。
第二种方法为只更新libiconv库

到iconv官网下载最新的库源码包,下载地址为:
http://ftp.gnu.org/gnu/libiconv

我下载的版本是1.15

解压

./configure --prefix=/home/linux/arm/iconv/ --host=arm-linux
make
make install

--prefix=/home/linux/arm/iconv/定义安装位置

--host=arm-linux定义编译环境

上述命令执行完成后会在libiconv目录下生成新的iconv目录,该目录下存在4个目录分别是:
bin include lib share
在lib目录下为生成的库文件,其中一个为preloadable_libiconv.so,把它下载到开发板
的lib目录下,然后再设置开发板的系统环境变量:
export LD_PRELOAD=/lib/preloadable_libiconv.so

然后再执行应用程序即可,正常运行。

LD_PRELOAD,是个环境变量,用于动态库的加载,动态库加载的优先级最高,一般情况下,其加载顺序为LD_PRELOAD>LD_LIBRARY_PATH>/etc/ld.so.cache>/lib>/usr/lib。


要在Ubuntu上配置Qt-arm交叉编译环境,您需要执行以下步骤: 1. 安装交叉编译工具链 您可以使用以下命令安装交叉编译工具链: ``` sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi ``` 2. 下载Qt 您可以从Qt官网下载Qt for Embedded Linux的源代码。解压缩下载的文件并将其放在您选择的目录中。 3. 配置Qt 进入解压后的Qt目录,执行以下命令: ``` ./configure -xplatform qws/linux-arm-gnueabi-g++ -embedded arm -little-endian -prefix /usr/local/qt-arm -no-largefile -no-accessibility -no-qt3support -no-sql-sqlite -no-glib -no-cups -no-pch -no-mmx -no-3dnow -no-sse -no-sse2 -no-ssse3 -no-sse3 -no-sse4.1 -no-sse4.2 -no-avx -no-neon -no-openvg -no-gtkstyle -no-nis -no-iconv -no-dbus -no-opengl -no-rpath -no-gif -no-libtiff -no-libpng -no-libmng -no-libjpeg -no-openssl -no-nas-sound -no-pulseaudio -no-alsa -no-xinerama -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xinput -no-xkb -no-sm -no-xshape -no-xvidmode -no-xinerama -no-xcursor -no-xfixes -no-xrandr -no-xrender -no-xinput -no-xkb -no-sm -no-xshape -no-xvidmode ``` 请注意,此命令假定您已经安装了arm交叉编译工具链,并且将Qt安装到了/usr/local/qt-arm目录中。 4. 编译Qt 执行以下命令编译Qt: ``` make ``` 这将需要一些时间来完成。 5. 安装Qt 执行以下命令安装Qt: ``` sudo make install ``` 6. 配置环境变量 将以下行添加到您的~/.bashrc文件中: ``` export PATH=/usr/local/qt-arm/bin:$PATH ``` 这将使您能够在命令行中轻松访问Qt。 完成以上步骤后,您应该已经成功配置了Qt-arm交叉编译环境。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值