歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在Redhat9文本系統上安裝Qt Embedded 4.4.0

在Redhat9文本系統上安裝Qt Embedded 4.4.0

日期:2017/2/28 15:50:01   编辑:Linux教程

Qt Embedded 直接依賴Framebuffer,無需X-Window。所以要開啟Linux系統的Framebuffer。開啟方法是通過BootLoader向內核傳遞參數:

對於grub,在grub.conf文件的kernel 命令後面添加 vga=0x311 fb:on 。

對於lilo,在lilo.conf文件中添加 vga=0x311。

0x311 表示分辨率為640*480,16dpp。

編譯安裝

首先下載Qt/E-4.4.0的源碼,然後解壓在 root 目錄:

cd /root

tar -xvjf qt-embedded-linux-opensource-src-4.4.0.tar.bz2

cd qt-embedded-linux-opensource-src-4.4.0

源碼中包含了文檔、例程。這些會占用很多空間和編譯時間,如果不需要的話就修改 configure ,把它去掉:

QT_DEFAULT_BUILD_PARTS="libs tools examples demos doc" 改為

QT_DEFAULT_BUILD_PARTS="libs tools"

通過 configure 的選項可以關閉很多不需要的模塊,用 ./configure -help 查看詳情。

針對嵌入式版本,還可以用 -no-feature-<feature> 關閉相應的特性,默認情況下會編譯全部的特性。可用的feature在 src/corelib/global/qfeatures.txt 文件中有完整描述。但是這個方法不方便,通常是通過 -qconfig 參數指定一個配置文件,在 src/corelib/global/ 目錄下有幾個典型的配置文件:

qconfig-large.h #包含了大多數特性。

qconfig-small.h #關閉了很多特性。

qconfig-minimal.h #最小配置,幾乎關閉了所有特性。

可以手動編輯修改配置。但是各種特性之間的依賴很復雜,所有Qt提供了一個圖形工具 qconfig 來幫助生成配置。這個工具需要編譯,安裝Qt/E後再介紹。

執行:

./configure -prefix /usr/qt -release -no-largefile -no-qt3support -no-xmlpatterns -no-phonon -no-svg -no-webkit -no-mmx -no-3dnow -no-sse -no-sse2 -no-gif -no-libtiff -no-libmng -qt-libpng -qt-libjpeg -no-openssl -no-nis -no-cups -no-iconv -no-opengl -no-dbus -qt-freetype -depths 16 -embedded x86 -qt-decoration-default -qt-gfx-linuxfb -qt-kbd-tty -qt-kbd-usb -qt-mouse-pc -qt-mouse-bus -no-glib -qconfig src/corelib/global/qconfig-small.h

make

make install

編譯工程需要幾個小時,所有文件都會被安裝到 /usr/qt/ 目錄下。www.linuxidc.com 現在配置環境變量:

在 /etc/profile 文件中添加:

PATH=$PATH:/usr/qt/bin

在 /etc/ld.so.conf 文件中添加:

/usr/qt/lib

然後執行 ldconf -v

重啟系統後,Qt/E 就可以使用了。

測試

  1. //demo.cpp
  2. #include <QApplication>
  3. #include <QPushButton>
  4. #include <QFont>
  5. #include <QTextCodec>
  6. int main(int argc, char *argv[])
  7. {
  8. QApplication app(argc, argv);
  9. QTextCodec *codec = QTextCodec::codecForName("GB18030");
  10. QTextCodec::setCodecForLocale(codec);
  11. QTextCodec::setCodecForCStrings(codec);
  12. QTextCodec::setCodecForTr(codec);
  13. QPushButton hello("Hello 世界!");
  14. hello.show();
  15. return app.exec();
  16. }
Copyright © Linux教程網 All Rights Reserved