日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

对于嵌入式交叉编译总结

發(fā)布時(shí)間:2023/12/10 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 对于嵌入式交叉编译总结 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這幾天終于搞定了老師項(xiàng)目里我負(fù)責(zé)的部分,主要是做一個(gè)圖像采集的手持端,我選用了JZ2440。
從移植內(nèi)核、制作文件系統(tǒng)、Qt移植總結(jié)下來發(fā)現(xiàn)在對(duì)于代碼的交叉編譯必須保證編譯平臺(tái)的一致性。對(duì)于s3c2440來說是armv4t,所以當(dāng)我們編譯出來程序必須要是

執(zhí)行 arm-linux-readelf libjpeg.so.62.0.0 -A (libjpeg.so.62.0.0 為我交叉編譯出來的)


這里的Tag_CPU_arch: v4T 很重要 、我的工具鏈arm-none-linux-gnueabi-(4.3.2)默認(rèn)編譯出來的程序?yàn)閂5 平臺(tái)的,由于我又是新手,開始時(shí)給我?guī)砗芏嗬_

后來我成功搭建好busybox時(shí)Qt程序老是出現(xiàn)非法指令問題
我查看了我生成的Qt程序,發(fā)現(xiàn)為V5,這也不難解釋Illegal instruction錯(cuò)誤

開始時(shí)我走了彎路,我在我寫的Qt程序里加入了

后來發(fā)現(xiàn)還是編譯出來為V5,我又嘗試在Makefile中加入march指定,發(fā)現(xiàn)還是不行,后來突然發(fā)現(xiàn)我編譯出來的Qt鏈接庫全是V5平臺(tái)的,怪不得編譯出來的程序也是V5,什么樣的爹什么樣的兒子嘛。于是我又開始程序交叉編譯armv4t的qt4.7 。這這間經(jīng)歷的坑我就不多說了,直接貼上我的文件

./configure -opensource -embedded armv4t -xplatform qws/linux-arm-g++ -no-webkit -nomake demos -nomake examples -qt-libtiff -qt-libmng -qt-libjpeg -qt-mouse-tslib -qt-mouse-pc -qt-gfx-transformed -no-mouse-linuxtp -prefix /opt/qt-4.7.1 -I /usr/local/tslib/include -L /usr/local/tslib/lib

加粗的這一句很重要,直接決定了編譯出來是armv4t還是armv5
(默認(rèn)V5)。最后的-I -L根據(jù)自己情況寫

編譯libtools
./configure CC=arm-linux-gcc-yin –host=arm –prefix=/opt/jpeg/libtool-release

編譯jpeg-6b
./configure CC=arm-linux-gcc-yin –prefix=/opt/jpeg/jpeg-6b-release –enable-shared –enable-static –host=arm

編譯tslib
CFLAGS=-march=armv4t ./configure –host=arm-linux –cache-file=arm-linux.cache -prefix=/usr/local/tslib ac_cv_func_malloc_0_nonnull=yes

arm-linux-gcc-yin 是我自己做的腳本。

最后一句:最重要的是統(tǒng)一

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的对于嵌入式交叉编译总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。