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



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