sudo apt-get install libx11-dev libxext-dev libxtst-devjavascript
配置:java
./configure --prefix=/opt/qt4.8.6 -opensource -confirm-license -qt-sql-sqlite -qt-gfx-linuxfb -plugin-sql-sqlit -no-qt3support -no-phonon -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-zlib -no-gif -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-rpath -no-pch -no-3dnow -no-avx -no-neon -no-openssl -no-nis -no-cups -no-dbus -embedded arm -platform linux-g++ -xplatform qws/linux-hisiv300-g++ -little-endian -qt-freetype -no-opengl -no-glib -nomake demos -nomake examples -nomake docs -nomake toolslinux
編譯web
makesql
make installubuntu
在HI3531上移植和運行QT4.8.6
轉自:http://lbc2100.blog.163.com/blog/static/1505536020149104565701/
一、前言:
近段有點時間,想把QT移植到HI3531上,在網上查找了不少資料,但都不是很全面,有些有問題也沒有獲得很好的體現。
二、環境:
PC:ubuntu10.04
HI3531交叉工具鏈:arm-hisiv100nptl-linux-
QT版本:qt4.8.6(Qt libraries 4.8.6 for embedded Linux (230 MB)
QT-Creator版本:qt-creator-linux-x86-opensource-2.4.1.bin
三、交叉編譯:
1) 進入qt-everywhere-opensource-src-4.8.6/mkspecs/qws目錄,新建linux-hisi3531nptl-g++目錄,複製linux-arm-g++目錄下的全部文件到linux-hisi3531nptl-g++
cp –a linux-arm-g++/* linux-hisi3531nptl-g++
2)進入linux-hisi3531nptl-g++,修改文件qmake.conf
# modifications to g++.conf
QMAKE_CC = arm-hisiv100nptl-linux-gcc
QMAKE_CXX = arm-hisiv100nptl-linux-g++
QMAKE_LINK = arm-hisiv100nptl-linux-g++
QMAKE_LINK_SHLIB = arm-hisiv100nptl-linux-g++
# modifications to linux.conf
QMAKE_AR = arm-hisiv100nptl-linux-ar cqs
QMAKE_OBJCOPY = arm-hisiv100nptl-linux-objcopy
QMAKE_STRIP = arm-hisiv100nptl-linux-strip
3)打開文件qplatformdefs.h增長
#undef O_CLOEXEC
此處主要爲解決:編譯過程當中找不到accept4函數問題
4)安裝X11庫
sudo apt-get install libX11-dev libXext-dev libXtst-dev
5)返回源碼目錄qt-everywhere-opensource-src-4.8.6進行配置
./configure --prefix=/opt/qt4.8.6 -opensource -confirm-license -qt-sql-sqlite -qt-gfx-linuxfb -plugin-sql-sqlit -no-qt3support -no-phonon -no-svg -no-webkit -no-javascript-jit -no-script -no-scripttools -no-declarative -no-declarative-debug -qt-zlib -no-gif -qt-libtiff -qt-libpng -no-libmng -qt-libjpeg -no-rpath -no-pch -no-3dnow -no-avx -no-neon -no-openssl -no-nis -no-cups -no-dbus -embedded arm -platform linux-g++ -xplatform qws/linux-hisi3531nptl-g++ -little-endian -qt-freetype -no-opengl -no-glib -nomake demos -nomake examples -nomake docs -nomake tools
其中: --prefix=/opt/qte4.8.6 爲交叉編譯目標安裝目錄
-xplatform qws/linux-hisi3531nptl-g++指定編譯器及平臺配置信息
5)make
6)make install
四、 PC編譯:
1) 從新解壓qt-everywhere-opensource-src-4.8.6.tar.gz,進行PC編譯
2) ./ configure
3) make
4) make install
五、 安裝QT開發環境
1)sudo ./qt-creator-opensource-linux-x86-2.4.1.run
2) 下一步直到安裝完成
3) 在應用程序,就能夠看到QT Creator
六、 配置開發環境
1)從PC的QT安裝目錄中拷貝以下文件到交叉編譯目錄
cp /usr/local/Trolltech/Qt-4.8.6/bin/qml* /opt/qt4.8.6/bin/
2)打開QT Creator
3)打開 工具-選項-QT版本
4)打開添加按鍵,添加交叉編譯的qmake
5)進入工具鏈,打開添加按鍵, 選擇GCCE,在編譯器路經選擇arm-hisiv100nptl-linux-g++的路經
到些就能夠編譯QT下自帶的例子chip了,但這時在HI3531上仍是不能顯示的。
七、 配置海思HI3531
1) 按照《HIFB開發指南.pdf》 說明加載hifb.ko驅動,這裏須要說明的是,若是QT程序運行在fb0上,分辨率爲1920*1080,顏色格式爲ARGB8888,1buffer模式下,則須要vram0_size = 1920*1080*4=8100K
若是爲2 buffer模式下則須要vram0_size=1920*1080*4*2=16200K
說明:爲何要使用ARGB8888而不用ARGB1555,是由於咱們QT編譯使用的是32位framebuffer。否則的話會作不了透明處理。
2)使能fb0,前提是VO設備已初始化完畢
static struct fb_bitfield g_r32 = {16,8, 0};
static struct fb_bitfield g_g32 = {8, 8, 0};
static struct fb_bitfield g_b32 = {0, 8, 0};
static struct fb_bitfield g_a32 = {24, 8, 0};
HI_BOOL show;
HIFB_ALPHA_S stAlpha;
struct fb_var_screeninfo stVarInfo;
fd = open("/dev/fb0", O_RDWR, 0);
show = 0x0;
ioctl(fd, FBIOPUT_SHOW_HIFB, &show);
stAlpha.bAlphaEnable = 0x1;
stAlpha.bAlphaChannel = 0x0;
stAlpha.u8Alpha0 = 0x0;
stAlpha.u8Alpha1 = 0xff;
stAlpha.u8GlobalAlpha = 0xff;
ioctl(fd, FBIOPUT_ALPHA_HIFB, &stAlpha);
ioctl(fd, FBIOGET_VSCREENINFO, &stVarInfo);
stVarInfo.xres = 1920;
stVarInfo.yres = 1080;
stVarInfo.xres_virtual = 1920;
stVarInfo.yres_virtual = 1080;
stVarInfo.transp= g_a32;
stVarInfo.red = g_r32;
stVarInfo.green = g_g32;
stVarInfo.blue = g_b32;
stVarInfo.bits_per_pixel = 32;
stVarInfo.activate = FB_ACTIVATE_NOW;
ioctl(fd, FBIOPUT_VSCREENINFO, &stVarInfo);
show = 0x1;
ioctl(fd, FBIOPUT_SHOW_HIFB, &show);
while(1)
{
Sleep(100);
}
3)配置設備linux環境變量
export QT_QWS_FONTDIR=/usr/lib/fonts //字庫的目錄
export QT_QWS_DISPLAY=「linuxFB:/dev/fb0「 //QT顯示在fb0層
八、 運行CHIP
OK
九、 實現背景透明
只須要調用QWSServer::setBackground(QColor(0,0,0,0));便可關於這個QColor,在設置的時候,是按照ARGB8888來設置的,前三個數值是RGB,最後一個數值是透明度,0x00是全透,0x7f是半透,0xff是不透。
十、如何顯示中文
從c:\windows\fonts 目錄下複製*.ttf文件到字庫目錄,就能夠顯示了,但字體須要設置大些windows