上面沒有問題的話那么我們開始準備編譯qtopia目錄內的東西啦!
#cd ..
如果你這樣做:
cd qtopia/src
./configure -platform linux-arm-g++
make?
?? 那么會出現這樣的錯誤:
cannot find -lqtopia以及uuid.h 找不到的問題
??? 這是因為我們發現qtopia/lib中libuuid.so打頭的相關連接文件是一個錯誤文件連接,因為找不到最終被鏈接的那個libuuid.so.6(具體名字我忘記了),所以矛盾轉換為尋求新的libuuid.so打頭系列的文件的問題,這個時候你得開始編譯e2fsprogs了,只有通過編譯才能形成新的libuuid.so打頭系列的文件。
??? 以下是具體編譯方法:
當前目錄為/yehuo2410/qt_arm
#tar --xzvf? e2fsprogs.1.35.tar.gz
#cd e2fsprogs-1.35??
#./configure -host=arm-linux? -with-cc=arm-linux-gcc? -with-linker=arm-linux-ld -enable-eld-shlibs
-prefix=/usr/local/arm/2.95.3/arm-linux
注意:這里prefix選項很重要,必須指定交叉編譯工具2.95.3中的arm-linux,不要改成別的目錄或者不指定prefix選項,
#make
#make install lib/uuid? 安裝到該目錄
??? 有個帖子上是這樣寫的:
/********************************************************/
#tar x*** e2fsprogs-1.35.tar.gz
#cd e2fsprogs-1.35
#./configure -host=arm-linux -with-cc=arm-linux-gcc -with-linker=arm-linux-ld -enable-elf-shlibs -prefix=/usr/local/arm/2.95.3/arm-linux
#make
#make install lib/uuid/
將e2fsprogs-1.35/lib/目錄下uuid的文件夾復制到/armsys2410/qt_arm/qtopia/include下
將e2fsprogs-1.35/lib/中的libuuid.a libuuid.so libuuid..so.1 libuuid.so.1.2復制到/armsys2410/qt_arm/qtopia/lib下
/*********************************************************/
??? 可是在/e2fsprogs-1.35/lib目錄里我們想要的四個文件中只有libuuid.a文件存在,而根本就找不到libuuid.so libuuid.so.1(只有一個點號)以及libuuid.so.1.2,這個時候我發現/usr/local/arm/2.95.3/arm-linux/lib中生成了libuuid.so,libuuid.so.1,libuuid.so.1.2,后來我用file命令查看libuuid.so.1.2所屬處理器類型是ARM。所以得到了這三個文件,那天下午我的Linux文件系統崩潰了,所以一切都要重來,當我又做到這一步時,編譯e2fsprogs以后發現e2fsprogs-1.35/lib目錄中和usr/local/arm/2.95.3/arm-linux/lib中都生成了libuuid.so,libuuid.so.1以及libuuid.so.1.2文件,而且都是支持ARM處理器的。
??? 總結得:如果在e2fsprogs-1.35/lib中找不到libuuid.so,libuuid.so.1,libuuid.so.1.2三個文件,那么建議去看一下usr/local/arm/2.95.3/arm-linux/lib目錄中是否存在這三個文件,如果不存在那就重新解壓e2fsprogs-1.35.tar.gz,重來。
??? 將e2fsprogs-1.35/lib/目錄下uuid的文件夾復制到/armsys2410/qt_arm/qtopia/include下
??? 將我們找到的libuuid.a libuuid.so libuuid..so.1 libuuid.so.1.2復制到/yehuo2410/qt_arm/qtopia/lib下
??? 好!問題解決了。
??? 如果你這樣做:
cd qtopia/src
./configure -platform linux-arm-g++
make?
??? 那么會出現以下錯誤:
./usr/local/arm/2.95.3/arm-linux/bin/ld: cannot find -ljpeg
??? 這是因為在qt目錄內編譯是configure文件默認配置為支持jpeg,然后在最后編譯的時候找不到相關的鏈接庫.這個時候我們需要壓縮包jpegsrc.v6b.tar.gz,來解決這個問題,按照帖子上的操作:
/**********************************************/
??? 下載jpegsrc.v6b.tar.gz到qtarm目錄并解壓,進入目錄jpeg-6b:
./configure --enable-shared
make? (得到libtools程序)
./configure --enable-shared
??? 修改生成的Makefile文件:
prefix = /qtarm/qt (qte的路徑)
CC =/usr/local/arm/2.95.3/bin/arm-linux-gcc
AR =/usr/local/arm/2.95.3/bin/arm-linux-ar rc
AR2=/usr/local/arm/2.95.3/bin/arm-linux-ranlib
cp jconfig.doc jconfig.h
mkdir -p /qtarm/qt/man/man1
make
??? 生成的libjpeg.so在.libs下,將libjpeg.so拷貝到/usr/local/arm/2.95.3/bin/arm-linux/lib
/***************************************************************************/
??? 我在jpeg-6b目錄內使用ls命令找不到找不到libs目錄(我忽略了點號),所以我按照慣例的方法
#locate libjpeg.so 發現/usr/lib目錄下有一libjpeg.so打頭系列文件,我當時很懷疑那不是我想要的文件,所以我在另外一臺PC上再一次按照同樣的方法安裝Linux,發現剛安好的系統中/usr/lib中已經存在了這些文件,為了進一步證明它們不是我想要的libjpeg.so系列文件,我用file命令查看libjpeg.so.62.00發現是i386處理器的,所以我放棄了使用它們,無意間我在jpeg-6b/目錄下使用了以下命令:
#cd .libs?
#ls -l | grep libjpeg*
剛好發現了它們:
libjpeg.so-->libjpeg.so.62
libjpeg.so.62-->libjpeg.so.62.0.0
libjpeg.la-->../libjpeg.la
我用file命令查看這個鏈接庫libjpeg.so.62.0.0發現是支持ARM處理器的,
總結得:我沒找到.libs目錄在哪里,錯誤的以為是/lib和/usr/lib
還有就是上述帖子最后一步:
生成的libjpeg.so在.libs下,將libjpeg.so拷貝到/usr/local/arm/2.95.3/bin/arm-linux/lib下.
應該是:
將/jpeg-6b/.libs目錄下的libjpeg.la,libjpeg.so ,libjpeg.so.62 以及libjpeg.so.62.0.0拷貝到目錄
/usr/local/arm/2.95.3/arm-linux/lib? (沒有bin)
好!這個問題解決了,再來:
cd qtopia/src
./configure -platform linux-arm-g++
make?
#cd ..
如果你這樣做:
cd qtopia/src
./configure -platform linux-arm-g++
make?
?? 那么會出現這樣的錯誤:
cannot find -lqtopia以及uuid.h 找不到的問題
??? 這是因為我們發現qtopia/lib中libuuid.so打頭的相關連接文件是一個錯誤文件連接,因為找不到最終被鏈接的那個libuuid.so.6(具體名字我忘記了),所以矛盾轉換為尋求新的libuuid.so打頭系列的文件的問題,這個時候你得開始編譯e2fsprogs了,只有通過編譯才能形成新的libuuid.so打頭系列的文件。
??? 以下是具體編譯方法:
當前目錄為/yehuo2410/qt_arm
#tar --xzvf? e2fsprogs.1.35.tar.gz
#cd e2fsprogs-1.35??
#./configure -host=arm-linux? -with-cc=arm-linux-gcc? -with-linker=arm-linux-ld -enable-eld-shlibs
-prefix=/usr/local/arm/2.95.3/arm-linux
注意:這里prefix選項很重要,必須指定交叉編譯工具2.95.3中的arm-linux,不要改成別的目錄或者不指定prefix選項,
#make
#make install lib/uuid? 安裝到該目錄
??? 有個帖子上是這樣寫的:
/********************************************************/
#tar x*** e2fsprogs-1.35.tar.gz
#cd e2fsprogs-1.35
#./configure -host=arm-linux -with-cc=arm-linux-gcc -with-linker=arm-linux-ld -enable-elf-shlibs -prefix=/usr/local/arm/2.95.3/arm-linux
#make
#make install lib/uuid/
將e2fsprogs-1.35/lib/目錄下uuid的文件夾復制到/armsys2410/qt_arm/qtopia/include下
將e2fsprogs-1.35/lib/中的libuuid.a libuuid.so libuuid..so.1 libuuid.so.1.2復制到/armsys2410/qt_arm/qtopia/lib下
/*********************************************************/
??? 可是在/e2fsprogs-1.35/lib目錄里我們想要的四個文件中只有libuuid.a文件存在,而根本就找不到libuuid.so libuuid.so.1(只有一個點號)以及libuuid.so.1.2,這個時候我發現/usr/local/arm/2.95.3/arm-linux/lib中生成了libuuid.so,libuuid.so.1,libuuid.so.1.2,后來我用file命令查看libuuid.so.1.2所屬處理器類型是ARM。所以得到了這三個文件,那天下午我的Linux文件系統崩潰了,所以一切都要重來,當我又做到這一步時,編譯e2fsprogs以后發現e2fsprogs-1.35/lib目錄中和usr/local/arm/2.95.3/arm-linux/lib中都生成了libuuid.so,libuuid.so.1以及libuuid.so.1.2文件,而且都是支持ARM處理器的。
??? 總結得:如果在e2fsprogs-1.35/lib中找不到libuuid.so,libuuid.so.1,libuuid.so.1.2三個文件,那么建議去看一下usr/local/arm/2.95.3/arm-linux/lib目錄中是否存在這三個文件,如果不存在那就重新解壓e2fsprogs-1.35.tar.gz,重來。
??? 將e2fsprogs-1.35/lib/目錄下uuid的文件夾復制到/armsys2410/qt_arm/qtopia/include下
??? 將我們找到的libuuid.a libuuid.so libuuid..so.1 libuuid.so.1.2復制到/yehuo2410/qt_arm/qtopia/lib下
??? 好!問題解決了。
??? 如果你這樣做:
cd qtopia/src
./configure -platform linux-arm-g++
make?
??? 那么會出現以下錯誤:
./usr/local/arm/2.95.3/arm-linux/bin/ld: cannot find -ljpeg
??? 這是因為在qt目錄內編譯是configure文件默認配置為支持jpeg,然后在最后編譯的時候找不到相關的鏈接庫.這個時候我們需要壓縮包jpegsrc.v6b.tar.gz,來解決這個問題,按照帖子上的操作:
/**********************************************/
??? 下載jpegsrc.v6b.tar.gz到qtarm目錄并解壓,進入目錄jpeg-6b:
./configure --enable-shared
make? (得到libtools程序)
./configure --enable-shared
??? 修改生成的Makefile文件:
prefix = /qtarm/qt (qte的路徑)
CC =/usr/local/arm/2.95.3/bin/arm-linux-gcc
AR =/usr/local/arm/2.95.3/bin/arm-linux-ar rc
AR2=/usr/local/arm/2.95.3/bin/arm-linux-ranlib
cp jconfig.doc jconfig.h
mkdir -p /qtarm/qt/man/man1
make
??? 生成的libjpeg.so在.libs下,將libjpeg.so拷貝到/usr/local/arm/2.95.3/bin/arm-linux/lib
/***************************************************************************/
??? 我在jpeg-6b目錄內使用ls命令找不到找不到libs目錄(我忽略了點號),所以我按照慣例的方法
#locate libjpeg.so 發現/usr/lib目錄下有一libjpeg.so打頭系列文件,我當時很懷疑那不是我想要的文件,所以我在另外一臺PC上再一次按照同樣的方法安裝Linux,發現剛安好的系統中/usr/lib中已經存在了這些文件,為了進一步證明它們不是我想要的libjpeg.so系列文件,我用file命令查看libjpeg.so.62.00發現是i386處理器的,所以我放棄了使用它們,無意間我在jpeg-6b/目錄下使用了以下命令:
#cd .libs?
#ls -l | grep libjpeg*
剛好發現了它們:
libjpeg.so-->libjpeg.so.62
libjpeg.so.62-->libjpeg.so.62.0.0
libjpeg.la-->../libjpeg.la
我用file命令查看這個鏈接庫libjpeg.so.62.0.0發現是支持ARM處理器的,
總結得:我沒找到.libs目錄在哪里,錯誤的以為是/lib和/usr/lib
還有就是上述帖子最后一步:
生成的libjpeg.so在.libs下,將libjpeg.so拷貝到/usr/local/arm/2.95.3/bin/arm-linux/lib下.
應該是:
將/jpeg-6b/.libs目錄下的libjpeg.la,libjpeg.so ,libjpeg.so.62 以及libjpeg.so.62.0.0拷貝到目錄
/usr/local/arm/2.95.3/arm-linux/lib? (沒有bin)
好!這個問題解決了,再來:
cd qtopia/src
./configure -platform linux-arm-g++
make?
評論
查看更多