久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標(biāo)題: 4412開發(fā)板編譯ARM-qtopia-free-src-2.2.0常見錯誤的處理 [打印本頁]

作者: 張宇yli    時間: 2020-4-10 13:28
標(biāo)題: 4412開發(fā)板編譯ARM-qtopia-free-src-2.2.0常見錯誤的處理
關(guān)于一些編譯錯誤的處理
編譯過程中如果產(chǎn)生錯誤信息,需要解決掉才能繼續(xù)編譯下去,錯誤信息的產(chǎn)生主要是因?yàn)榫幾g器版本造成的,共有以下幾類錯誤信息:
1 缺少工具錯誤




這是編譯時遇到的第一個問題,編譯 qt2 時需要使用 uic 工具,uic 是 PC 上運(yùn)行的工具,
用來把 Qt 的界面文件,也就是.ui 文件轉(zhuǎn)換成.h 文件和.cpp 文件,轉(zhuǎn)換完成后才能交
給交叉編譯器編譯。
解 決 辦 法 :把 qtopia-free-2.2.0/dqt/bin 里 面 的 uic 文 件 拷 貝 到
qtopia-free-2.2.0/qt2/bin 下面即可。
注意:uic 拷貝到 qtopia-free-2.2.0/qt2/bin 后,需要修改一下 build 腳本文件,因?yàn)?/font>
如果您重新執(zhí)行 build 命令,該腳本會把剛才編譯中的 qtopia-free-2.2.0 文件夾刪除,重新
解壓,形成新的 qtopia-free-2.2.0,開始編譯,這樣剛才拷貝的 uic 就沒意義了。
修改方法如下圖所示:




就是在 rm –fr qtopia-free-2.2.0 和 tar xfvz qtopia-free-src-2.2.0.tar.gz 語句前加上
#注釋掉,修改后保存退出。
然后執(zhí)行#./build,重新編譯。
2 缺少類聲明
error: ‘QWSInputMethod’ has not been declared
修改方法如下:
#cd /root/yizhi/qtopia-free-2.2.0/qt2/src/kernel
# gedit qwindowsystem_qws.h
在前面增加以下兩行:
class QWSInputMethod;
class QWSGestureMethod;
保存退出,繼續(xù)編譯。
3 缺少文件錯誤




源代碼需要 custom-linux-arm-g++.h/cpp 文件,但是沒找到。
解決辦法:
#cd ./qtopia-free-2.2.0/qtopia/src/libraries/qtopia
#cp custom-linux-ipaq-g++.h custom-linux-arm-g++.h
#cp custom-linux-ipaq-g++.cpp custom-linux-arm-g++.cpp
繼續(xù)編譯
#cd /root/yizhi
#./build
4 無法匹配到 QSizePolicy 類的構(gòu)造函數(shù)
即 QSizePolicy 類沒有提供特定參數(shù)的構(gòu)造函數(shù)




解決辦法:
查看出錯信息的文件,這里是 passwordbase_p.cpp,且出錯的地方是第 35 行,使用
find 命令找到該文件在 Ubuntu 中的具體位置:
#find ./ -name passwordbase_p.cpp




找 到 后 在./qtopia-free-2.2.0/qtopia/src/libraries/qtopia/.ui/release-shared 目
錄下面,執(zhí)行以下命令,修改該文件:
# gedit ./qtopia-free-2.2.0/qtopia/src/libraries/qtopia/.ui/release-shared/pas
swordbase_p.cpp
移動光標(biāo)到第 35 行,如下圖所示:




prompt->setSizePolicy(QsizePolicy((QsizePolicy::SizeType)7,
(QsizePolicy::SizeType) 7,0,0,prompt->sizePolicy().hasHeightForWidth()))
函數(shù)中的 0,0 去掉,即:
prompt->setSizePolicy(QsizePolicy((QsizePolicy::SizeType)7,
(QsizePolicy::SizeType) 7,prompt->sizePolicy().hasHeightForWidth()))
去掉后如下圖:




保存退出,執(zhí)行如下命令重新編譯:
#./build
重新編譯后,會出現(xiàn)若干次這個類型的錯誤,解決辦法非常相似,這里就不一一介紹了。
5 類的成員函數(shù)前有額外的類名字
如下圖:




解決辦法:
根據(jù)錯誤提示信息找到 qdawg.cpp 文件,gedit 打開該文件,移動光標(biāo)到 294 行。




修改后如下圖:




保存退出,繼續(xù)編譯
#./build
6. open 函數(shù)調(diào)用缺少必要的參數(shù)
如下圖提示的錯誤:




解決辦法參考下圖:




打開 qmemoryfile_unix.cpp 文件,修改第 51 行




f=::open(tempFile,latin1(),0_CREAT | 0_WRONLY); 修改為
f=::open(tempFile,latin1(),0_CREAT | 0_WRONLY,0666);即增加 0666 參數(shù),
保存,退出。
對于 open 函數(shù)來說,僅當(dāng)創(chuàng)建新文件時,第三個參數(shù)使用,用于指定文件的訪問權(quán)限
注 意:共 有 兩 處 這 樣 的 修 改, 另 外 一 處:
qtopia-free-2.2.0\qt2\src\tools\qmemoryfile_unix.cpp 文件的第 143 行位置,修改
方 法與 qmemoryfile_unix.cpp 文件相似。
#./build 重新編譯
7 缺少 this 指針
如下圖:




解決辦法:執(zhí)行下面的命令
# gedit ./qtopia-free-2.2.0/qt2/include/qvaluestack.h
移動光標(biāo)到 57 行
將 remove( this->fromLast());改為 this->remove( this->fromLast());
保存退出。
8 缺少系統(tǒng)頭文件
如下圖所示:




解決辦法如下:
# gedit .\ qtopia-free-2.2.0\qt2\src\kernel\qpixmapcache.cpp
修改第 125 行為




即:
#define PAGE_SHIFT 12
#define PAGE_SIZE (1UL << PAGE_SHIFT)
#define PAGE_MASK (~(PAGE_SIZE-1))
//# include<asm/page.h> //PAGE_SIZE,PAGE_MASK,PAGE_ALIGN
這樣修改是因?yàn)樾碌?Linux 內(nèi)核源碼中已經(jīng)不包含這個頭文件了。
另外其他的地方也用到了該頭文件,同樣需要去掉,執(zhí)行以下命令:
# gedit ./qtopia-free-2.2.0/qt2/tools/qvfb/qvfbview.cpp
移動到第 39 行,修改為下圖所示:




修改原因是因?yàn)?asm/page.h 文件里面定義了一些宏,咱們在這里重新定義了必須使用
的宏,所以這里就不需要 asm/page.h 文件了。
說明:繼續(xù)編譯后會出現(xiàn)幾次以上類型的錯誤,出現(xiàn)的錯誤類型就是以上總結(jié)的幾種
(出錯的信息通過 google 能找到解決方法),修改方法按以上步驟即可,主要就是發(fā)現(xiàn)哪個
文件出錯,找到該文件,用 gedit 打開該文件,移動到出錯的行上,修改,保存退出。出錯
的文件和行號是根據(jù)編譯時的錯誤提示信息來找到的,一定要查找第一個 Erro 的地方,這里
是需要重點(diǎn)關(guān)注的。通過這幾種錯誤類型的修改,您會對 Qt 移植有了新的認(rèn)識,也提高了您
的軟件移植能力。
編譯成功完成后,Qtopia2.2.0 會自動的安裝到 qtopia-free-2.2.0/qtopia/zImage/opt
下面,如下圖




進(jìn)入到 Qtopia 錄下面,如圖:




注 意 : 編 譯 好 的 Qtopia 下 面 沒 有 字 體 , 自 己 需 要 把 字 體 放
到 Qtopia/lib/fonts 下面,qtopia-free-2.2.0/qt2/lib/fonts 文件夾下有各種可以用的字
體,但是我們只需要 helvetica 類型,該類型支持中文。執(zhí)行以下命令:
#cp/root/yizhi/qtopia-free-2.2.0/qt2/lib/fonts/Helvetica* /root/yizhi/qtopia-fr
ee-2.2.0/qtopia/image/opt/Qtopia/lib/fonts/
另 外 需 要 把/root/yizhi/armlib 下 面 的 文 件 全 部 拷 貝 到
/root/yizhi/qtopia-free-2.2.0/qtopia/image/opt/Qtopia/lib/下面
字體文件和庫文件拷貝完成后,把 Qtopia 整個錄拷貝到文件系統(tǒng)的 /opt 錄下面,如
果該目錄下面已經(jīng)有迅為電子提供的 Qtopia 文件夾,您可以把迅為電子提供的 Qtopia 文件
夾刪除掉,來運(yùn)行您自己編譯的版本,運(yùn)行方法參考下一章節(jié)的 Qtopia2.2.0 的使用。
更多內(nèi)容:關(guān)注迅為電子





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产午夜精品一区二区三区嫩草 | 国产成人精品一区二区三区视频 | 亚洲一区二区高清 | 国产精品久久一区二区三区 | 欧美中文一区 | 99久久99| 9999久久| 人人干人人干人人 | 99久久久久久99国产精品免 | 久久久久久www | 国产成人在线视频 | 91国内视频在线 | 精品乱人伦一区二区三区 | 亚洲视频一区在线观看 | 国产免费福利小视频 | 九九亚洲精品 | 黄网在线观看 | 精品久久精品 | 黄在线 | 黄色av观看 | 97人人澡人人爽91综合色 | av一区二区在线观看 | 久久国内 | 成人欧美一区二区 | 午夜影院视频在线观看 | 国产成人久久 | 91成人在线视频 | 香蕉一区 | 久草综合在线 | 亚洲三级av| 国产免费福利 | 久久精品久久精品久久精品 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 国产一区不卡 | 国产线视频精品免费观看视频 | 成人激情视频网 | 精品国产欧美在线 | 欧美精品久久久 | 久草网站 | 久热久草 | av网址在线 |