Ⅰ QT4如何移植到ARM-linux目標板
一、准備
busybox 1.14.1
qt-embedded-linux-opensource-src-4.5.1
tslib 1.4
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
構建一個新的根文件系統目錄,路徑為
/root/rootfs
二、具體步驟:
1、編譯安裝busybox
在官網下載最新版。可以參考如下幾處要修改的地方:
Busybox Settings ---> Build Options ---> (arm-linux-)Cross Compiler prefix
Busybox Settings ---> Installation Options --->[]Dont't use /usr
Busybox Settings ---> Installation Options --->(/root/rootfs) BusyBox installation prefix
Busybox Settings --->Busybox Library Tuning --->[*] Fancy Shell prompts
輸入如下命令,編譯並安裝。
# make;make install
2、編譯安裝tslib
# ./autogen.sh
# ./configure -prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
# make;make install
安裝目錄指明為 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/
主要是為了在編譯QTE時,不用指定tslib的頭文件和庫文件,方便以後程序開發。
注意:在做這一步前,需要做一個目錄鏈接
在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目錄下
# ln -s ../../usr/include ./
3、編譯安裝QTE
1)、最基本的配置
# ./configure -prefix /usr -embedded arm -xplatform qws/linux-arm-g++ -depths 16 -qt-mouse-tslib
-prefix /usr 使用這個配置,編譯後的QTE庫文件即可放在目標文件系統的/usr/lib下,而不是默認/usr/local/Trolltech/QtEmbedded-4.5.1 這個很深的目錄
2)、編譯
# make
# cp lib/* /root/rootfs/usr/lib -rd 將QTE庫文件拷貝到根文件系統的目錄
# cp plugins /root/rootfs/usr -rd 將QTE插件目錄拷貝到根文件系統的目錄
4、根文件系統的設置
1)、這時/root/rootfs/usr下應該有 bin etc include lib sbin目錄
tslib生成的etc目錄,包含一個tslib的配置文件 nf,編輯此文件,去掉mole_raw input前的注釋
# mv etc ../ 移動到rootfs的根目錄
2)、進行一次清理操作
#arm-linux-strip lib/*.so
#arm-linux-strip usr/lib/*.so
3)、編輯etc/profile,添加以下內容
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/nf
export TSLIB_PLUGINDIR=/usr/lib/ts
最後,通過mkyaffs2image 製作鏡像,燒寫鏡像,啟動ts_calibrate校驗觸屏即可。
Ⅱ linux安裝QT的問題
1.如果在./configure階段,出現了以下錯誤
Basic XLib functionality test failed!
You might need to modify the include and library search paths by editing
QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11
那是因為沒裝有libxtst-dev,使用命令apt-get install libxtst-dev安裝
2.如果在make階段,出現一下錯誤
/usr/bin/ld: cannot find -lXrender
collect2: ld returned 1 exit status
make[1]: *** [../../../../lib/libQtWebKit.so.4.7.3] 錯誤 1
make[1]: Leaving directory `/home/debian/桌面/qt-everywhere-opensource-src-4.7.3/src/3rdparty/webkit/WebCore'
make: *** [sub-webkit-make_default-ordered] 錯誤 2
那是因為沒有裝libxrender-dev
3.在qt create中,嘗試編譯測試,如果找不到qmake,則在工具-選項-QT4中手動設置qmake的位置。qmake的位置默認在/usr/local/Trolltech/Qt-4.7.3/bin/qmake。
Ⅲ 如何在Ubuntu中安裝QT4啊
運行:
一、$ sudo apt-get install libqt4-dev libqt4-debug libqt4-gui
libqt4-sql qt4-dev-tools qt4-doc qt4-designer qt4-qtconfig
qt4-dev-tools
包含了Qt Assistant及Qt Linguist等工具,不需要單獨安裝這兩個工具。其它的,qt4-doc
是幫助文檔,包含了Qt中各個類庫的詳細說明以及豐富的例子程序,使用Qt Assistant
工具開閱讀。qt4-qtconfig 是配置Qt環境的對話框,qt4-demos
包含很多可以運行的可執行文件以及源代碼。qt4-designer是用來設計GUI界面的設計器
二、$ sudo apt-get install libqt4-debug 在安裝這個軟體的時候系統提示:
正在讀取軟體包列表... 完成
正在分析軟體包的依賴關系樹
正在讀取狀態信息...
完成
三、編寫源代碼。 新建文件夾qt4hello,然後再裡面新建文件 Qthello.cpp,內容如下:
#include <QApplication>
#include <QPushButton>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QPushButton hello("Hello Ubuntu!");
hello.resize(100, 30);
hello.show();
return app.exec();
}
在終端輸入:$ gedit Qthello.cpp(輸入上面的程序)
$qmake -project(生成Qt項目)
$qmake(生成makefile文件)
$make
出現g++ -c -pipe -g -Wall -W -D_REENTRANT -DQT_GUI_LIB -DQT_CORE_LIB
-I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore
-I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui
-I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -I. -o
QtHello.o QtHello.cpp
g++ -o qtsrc QtHello.o -L/usr/lib -lQtGui -lQtCore -lpthread
最後
$ ls
Makefile qt4hello
qt4hello.pro Qthello.cpp
Qthello.o
結著
$ ./qt4hello 在屏幕上顯示一個hello的小窗口安裝完畢
Ⅳ 如何在linux下安裝QT源碼包,安裝後用圖形形式編程
去QT官網http://www.qt.io/download/下載對應的qt安裝包
在linux下面直接雙擊(你沒有看錯,是雙擊!專)安裝包開始安裝,安裝過程和屬Windows下面基本相同
打開QT的IDE開始寫代碼
Ⅳ 有會linux下QT編程的嗎
根本就是胡來!
10分有點少,給你簡單說說。
首先你需要看看你使用的qmake是哪一個,命令
which qmake
看看是不是你安裝的那個!
-I/usr/include/Qt... 說明你執行的qmake不是那安裝的版本,系統的那個你又沒有裝qt4-devel,簡單的就是直接安裝qt4-devel,復雜的你自己研究吧。
反正不要把系統的和你自己裝的混合起來用,另外就是盡量不要輕易改動系統的,否則你會遇上更多麻煩。
--------------------------
Windows和Linux執行文件的方式不同,Linux默認從系統路徑中尋找,Windows從當前路徑尋找。
在Linux上運行當前目錄下的文件用
./文件名
而不是直接輸入文件名,或者直接連同全路徑一起輸入。
你的問題是這樣的,你的qmake,告訴編譯器去你的系統路徑中尋找系統中自帶的qt庫,但是你沒有安裝。你自己安裝了一個開發環境,但是你調用了系統的QT裡面的qmake,系統自帶的qmake會尋找編譯你的桌面(KDE)的時候用的qt文件,但是你沒有安裝,所以所有的文件的位置和版本都找不到。
解決:
1、你可以找到你自己安裝的qt然後運行裡面的qmake。讓qmake找到你自己安裝的qt相關文件。
2、直接刪除自己安裝的軟體,加入系統自帶的qt開發包,一般叫做qt-xxx-devel,讓系統的qt可以找到他原來的開發包。
3、不建議混合,即用系統的qmake找到你目前安裝的qt庫,那樣可能版本不兼容。
關於QT:
你可以認為分成兩個部分,一部分用來開發,一部分用來運行程序。你的系統中已經安裝了用來運行程序的部分,因此qmake被識別成系統的。而你另外裝了一個完整的QT(包含開發部分),但是系統的qmake仍然試圖尋找,他自己原來的那個開發部分,而不是你新裝的。即使修改文件讓系統找到你的那些開發文件也可能和系統的版本不完全一致而出錯。