歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux教程

SUSE 10.3下成功重新編譯了qtopia 2.2.0

在SUSE 10.3下重新編譯了一遍qtopia 2.2.0,基本上參照網上的資料。

主機為SUSE 10.3。感覺busybox和qtopia要用同樣的gcc,關鍵是lib。

來不及細細整理,大致過程如下,最後還摘抄了點錯誤和解決方法。

zlib

./configure --shared

vi Makefile

CC=/usr/local/arm/3.4.1/bin/arm-linux-gcc

LDSHARED=/usr/local/arm/3.4.1/bin/arm-linux-gcc -shared -Wl,-soname,libz.so.1

CPP=/usr/local/arm/3.4.1/bin/arm-linux-gcc -E

AR=/usr/local/arm/3.4.1/bin/arm-linux-ar rc

RANLIB=/usr/local/arm/3.4.1/bin/arm-linux-ranlib

生成libz.so        libz.so.1      libz.so.1.2.3 

cp libz.so* ../dist/lib/

cp *.h ../dist/inlucde/

cd e2fsprogs-1.40.2

export PATH=$PATH:/usr/local/arm/3.4.1/bin

./configure --host=arm-linux CC=arm-linux-gcc  --enable-elf-shlibs

修改/usr/local/arm/3.4.1/arm-linux/sys-include/linux

中fd.h

添加#include <linux/compiler.h>

make

生成lib/libuuid.so *

cp lib/libuuid.so* ../dist/lib/

cd jpeg-6b/

(export PATH=$PATH:/usr/local/arm/3.4.1/bin)

./configure --host=arm-linux-gcc CC=arm-linux-gcc

make

生成libjpeg.a

cp libjpeg.a ../dist/lib/

cd libpng-1.2.23/

(export PATH=$PATH:/usr/local/arm/3.4.1/bin)

cp scripts/makefile.linux ./Makefile

vi Makefile

AR_RC=arm-linux-ar rc

CC=arm-linux-gcc

RANLIB=arm-linux-ranlib

ZLIBLIB=/home/wangbin/work/qt/zlib-1.2.3

ZLIBINC=/home/wangbin/work/qt/zlib-1.2.3

make

cp libpng12.so ../dist/lib/libpng.so

cp libpng12.so* ../dist/lib/

cp *.h ../dist/inlucde/

cd tslib-1.3/

./autogen.h

./configure --host=arm-linux CC=arm-linux-gcc

cd plugins

sed 's/-rpath \$(PLUGIN_DIR)/-rpath \`cd \$(PLUGIN_DIR) \&\& pwd\`/' Makefile>Makefile.temp

(LDFLAGS :=$(LDFLAGS) -rpath `cd $(PLUGIN_DIR) && pwd`)

rm Makefile -f

mv Makefile.temp Makefile

cd ..

make

cp src/.libs/libts* ../dist/lib/

cp src/*.h ../dist/inlucde/

以下生成本機用的uic designer等工具

cd qt2

export QTDIR=$PWD

export TMAKEDIR=/home/wangbin/work/qt/qtopia-free-2.2.0/tmake

export TMAKEPATH=$TMAKEDIR/lib/linux-g++

export PATH=$PATH:$TMAKEDIR/bin

echo yes|./configure -static -no-xft -no-sm

begin

cd src/tools/

sed 's/remove( this->fromLast() )/this->remove( this->fromLast())/' qvaluestack.h>temp.h

rm -f qvaluestack.h

mv temp.h qvaluestack.h

cd ../../

over

make -C src/moc

make -C src

make -C tools/designer

make -C tools/qvfb

qvfbview.o qvfbview.cpp

qvfbview.cpp: In constructor ‘QVFbView::QVFbView(int, int, int, int, QVFbView::Rotation, bool, QWidget*, const char*, uint)’:

qvfbview.cpp:171: error: cast from ‘unsigned char*’ to ‘int’ loses precision

make: *** [qvfbview.o] 錯誤 1

if ( (unsigned char *)data ==(unsigned char *) -1 ){

make

cp tools/qvfb/qvfb bin

cd qtopia-free-2.2.0/

vi qtopia/mkspecs/qws/linux-arm-g++/qmake.conf

將此行

      QMAKE_LIBS_QT = -lqte

      修改為

      QMAKE_LIBS_QT = -lqte -lpng -lts -lz -luuid -ljpeg

export QTDIR=/home/wangbin/work/qt/qtopia-free-2.2.0/qt2

export QPEDIR=/home/wangbin/work/qt/qtopia-free-2.2.0/qtopia

export LD_LIBRARY_PATH=$QTDIR/lib:$QPEDIR/lib:$LD_LIBRARY_PATH

export TMAKEDIR=/home/wangbin/work/qt/qtopia-free-2.2.0/tmake

export TMAKEPATH=$TMAKEDIR/lib/qws/linux-arm-g++

export PATH=$PATH:$TMAKEDIR/bin:/usr/local/arm/3.4.1/bin

export PATH=$PATH:$QTDIR/bin:$QPEDIR/bin

cp $QPEDIR/src/qt/qconfig-qpe.h $QTDIR/src/tools

cd $QPEDIR/src/libraries/qtopia

cp custom-linux-ipaq-g++.cpp custom-linux-arm-g++.cpp

cp custom-linux-ipaq-g++.h custom-linux-arm-g++.h

cd /home/wangbin/work/qt/qtopia-free-2.2.0/

export PATH=$PATH:/usr/local/arm/3.4.1/bin

./configure -qte "-embedded -xplatform linux-arm-g++ -qconfig qpe -no-qvfb -depths 16 -system-jpeg -system-libpng -system-zlib -tslib -gif -thread -no-xft -release -I/home/wangbin/work/qt/dist/include -L/home/wangbin/work/qt/dist/lib -lpng -lts -lz -luuid -ljpeg" -qpe "-xplatform linux-arm-g++ -edition pda -displaysize 240x320 -I/home/wangbin/work/qt/dist/include -L/home/wangbin/work/qt/dist/lib -prefix=/home/wangbin/work/qt/dist/qtopia"

vi qtopia-free-2.2.0/qtopia/src/libraries/qtopia/qdawg.cpp

:294:

//   QDawgPrivate::~QDawgPrivate()

    ~QDawgPrivate()

yes

make

make install

qconfig.h

Qpainter要能夠旋轉的話,去掉QT_NO_TRANSFORMATIONS

所以實際要注釋的宏是/qt/src/tools/ qconfig-qpe.h和/qt/src/tools/qfeart

Copyright © Linux教程網 All Rights Reserved