linux环境下ARM移植libcurl

因为用的板子是ZLG的imx280a,所以我安装的Ubuntu直接用他们给的了。


系统环境:VM-Ubuntu-12.04-64bit-zlg(这个无所谓,我直接用的ZLG官方给的镜像安装的)


libcurl的安装包:curl-7.55.1.tar(这是我做的时候出的最新版本,最新版本去官网下载:戳我!打开链接


交叉编译环境:arm-none-linux-gnueabi-   这里要注意你得安装了交叉编译工具链,以我的为例,我的交叉编译链都在/opt/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/目录下。




好了,进入正题。


1.1、直接贴出代码:


vmuser@Linux-host:~$ tar -zxvf curl-7.55.1.tar.gz


vmuser@Linux-host:~$ cd curl-7.55.1/


vmuser@Linux-host:~$./configure --prefix=/home/vmuser/libcurl --host=arm-none-linux CC=arm-none-linux-gnueabi-gcc CXX=arm-none-linux-gnueabi-g++(注意绿色部分是你想把生成的文件存放的位置


vmuser@Linux-host:~$ make


vmuser@Linux-host:~$ make install(注意在这一过程中可能会出现一些错误的提示语句,我们先跳过去,执行到最后)


1.2、我们在/home/vmuser目录下可以看到生成的libcurl文件夹。进去查看文件夹下的内容,可以看到四个文件夹。




1.3、进入lib目录,我们要保证有以下几个文件就可以了




然后我们把libcurl整个文件夹拷贝到板子上。这里我用的是U盘拷贝。


2.1、拷贝文件到/lib目录。


给开发板上电,登录后将U盘上的文件拷贝到板子文件系统根目录下/usr/lib或者/lib里都可以。这里我拷贝到了/lib目录下。

 

root@EasyARM-iMX28x ~# cp -R  /media/usb-sda1/libcurl/.  /lib(绿色部分是我的U盘的目录)


此时在/lib下可以看到bin、include、lib、share四个文件。


拓展一下: root@EasyARM-iMX28x ~# cp -R /media/usb-sda1/libcurl/ /lib

用上边的命令在/lib下只有libcurl一个文件夹。这是cp -R /. 和cp -R / 的区别。


2.2、修改环境变量。


这里我修改了/etc/profile文件,目的是使修改对所有用户生效,不用每次都修改了。

root@EasyARM-iMX28x /etc# vi profile
PATH=/iptables/bin:/iptables/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/lib/bin
test_value=`/bin/cat /sys/devices/platform/zlg-systemType/board_name`
if [ $test_value = "287B" ]
then
        echo "this board is EasyARM-iMX287B"
        export HOSTNAME="EasyARM-iMX287B"
fi

我们在第二行的PATH语句末尾添加“:/lib/bin”就可以了,然后保存退出。输入sync语句同步文件,然后重启即可。

root@EasyARM-iMX28x /# sync
root@EasyARM-iMX28x /# reboot

重启后在开发板里输入curl指令,如果跟下面的提示一致,恭喜你成功了。

root@EasyARM-iMX28x ~# curl
curl: try 'curl --help' or 'curl --manual' for more information
不过我第一次并没有成功,提示信息如下:

root@EasyARM-iMX28x ~# curl
curl: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No such file or directory
提示缺少libcurl.so.4,怎么办?还记得我们拷贝到/lib目录下有一个lib的文件夹,里边有这个libcurl.so.4

root@EasyARM-iMX28x /lib/lib# ls
libcurl.a         libcurl.so        libcurl.so.4.4.0
libcurl.la        libcurl.so.4      pkgconfig
于是把libcurl.so.4这个文件拷贝到/lib下即可。

root@EasyARM-iMX28x /lib/lib# cp libcurl.so.4 /lib/
root@EasyARM-iMX28x /lib/lib# curl
curl: try 'curl --help' or 'curl --manual' for more information


可以看到我们成功安装curl。


由于开发板的文件系统都不一样,所以安装过程中还有可能出现下面的提示:


root@EasyARM-iMX28x ~# curl


curl:error while loading shared libraries:libssl.so.1.0.0: cannot open shared object file: No such file or directory


由于我的开发板在/lib目录下有libssl.so.1.0.0这个文件,所以具体怎么做我也没有细看。不过可以参考另一个博客,博客地址:http://blog.csdn.net/miaodichiyou/article/details/50385049


下边列出我感觉还比较有用的关于ARM移植方面的博客地址(转载请注明地址)


1.http://blog.csdn.net/miaodichiyou/article/details/51451134


2.http://blog.csdn.net/makenothing/article/details/39250491


3.http://blog.csdn.net/lifan5/article/details/7350154


4.http://blog.csdn.net/qianghaohao/article/details/51684862


最后,我把我下载的libcurl的安装包curl-7.55.1.tar和生成的libcurl文件分享出来,注意这个libcurl文件只适用于ZLG的imx28系列,其他板子不好使。有用ZLG的imx28系列板子的小伙伴可以下载。


链接:https://pan.baidu.com/s/1jJPsdwy 密码:r8l7



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章