主题 : X86-qtopia 編譯錯誤 复制链接 | 浏览器收藏 | 打印
Good
级别: 新手上路
UID: 9050
精华: 0
发帖: 6
金钱: 60 两
威望: 30 点
贡献值: 0 点
综合积分: 12 分
注册时间: 2009-09-15
最后登录: 2010-04-18
楼主  发表于: 2009-09-16 10:32

 X86-qtopia 編譯錯誤

build.zip (141 K) 下载次数:31 開發環境為 redhat 9.0
arm-linux-gcc 4.3.2
在PC編譯X86-qtopia時 都會有下列錯誤
從build.log 去看 也不知道是什麼狀況
我把build.log上傳 請高手幫我看一下吧


checking for libjpeg... -ljpeg
checking for Qt... configure: error: Qt (>= Qt 2.2.2) (library qte) not found. Please check your installation!
For more details about this problem, look at the end of config.log.
make: *** No targets specified and no makefile found.  Stop.
strip: konq-embed/src/konqueror: No such file or directory
cp: cannot stat `konq/konq-embed/src/konqueror': No such file or directory
mkdir: cannot create directory `qtopia-2.2.0-FriendlyARM/qtopia/image/opt/Qtopia/pics/konqueror': No such file or directory
cp: cannot create regular file `qtopia-2.2.0-FriendlyARM/qtopia/image/opt/Qtopia/pics/konqueror': No such file or directory
cp: cannot create regular file `qtopia-2.2.0-FriendlyARM/qtopia/image/opt/Qtopia/apps/Applications': No such file or directory
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2009-09-16 11:58
这是在编译X86版本的Qtopia, 和交叉编译器没关系。
出错的原因在于之前编译生成libqte.so的时候链接出错了:
gcc -shared -Wl,-soname,libqte.so.2   -o libqte.so.2.3.12 allmoc.o 3rdparty/libpng/png.o 3rdparty/libpng/pngerror.o 3rdparty/libpng/pngget.o 3rdparty/libpng/pngmem.o 3rdparty/libpng/pngpread.o 3rdparty/libpng/pngread.o 3rdparty/libpng/pngrio.o 3rdparty/libpng/pngrtran.o 3rdparty/libpng/pngrutil.o 3rdparty/libpng/pngset.o 3rdparty/libpng/pngtrans.o 3rdparty/libpng/pngwio.o 3rdparty/libpng/pngwrite.o 3rdparty/libpng/pngwtran.o 3rdparty/libpng/pngwutil.o 3rdparty/zlib/adler32.o 3rdparty/zlib/compress.o 3rdparty/zlib/crc32.o 3rdparty/zlib/deflate.o 3rdparty/zlib/gzio.o 3rdparty/zlib/infblock.o 3rdparty/zlib/infcodes.o 3rdparty/zlib/inffast.o 3rdparty/zlib/inflate.o 3rdparty/zlib/inftrees.o 3rdparty/zlib/infutil.o 3rdparty/zlib/trees.o 3rdparty/zlib/uncompr.o 3rdparty/zlib/zutil.o 3rdparty/tools/qbig5codec.o 3rdparty/tools/qeucjpcodec.o 3rdparty/tools/qeuckrcodec.o 3rdparty/tools/qgbkcodec.o 3rdparty/tools/qjiscodec.o 3rdparty/tools/qjpunicode.o 3rdparty/tools/qrtlcodec.o 3rdparty/tools/qsjiscodec.o 3rdparty/tools/qtsciicodec.o tools/qdir_unix.o tools/qfile_unix.o tools/qfileinfo_unix.o tools/qbitarray.o tools/qbuffer.o tools/qcollection.o tools/qcstring.o tools/qdatastream.o tools/qdatetime.o tools/qdir.o tools/qfile.o tools/qfileinfo.o tools/qgarray.o tools/qgcache.o tools/qgdict.o tools/qglist.o tools/qglobal.o tools/qgvector.o tools/qiodevice.o tools/qmap.o tools/qregexp.o tools/qstring.o tools/qstringlist.o tools/qtextcodec.o tools/qtextstream.o tools/qutfcodec.o 3rdparty/kernel/qregion_qws.o 3rdparty/kernel/qpointarray.o 3rdparty/kernel/qpolygonscanner.o 3rdparty/kernel/qgifimageformat.o kernel/qpsprinter.o kernel/qthread_unix.o kernel/qgfxraster_qws.o kernel/qapplication_qws.o kernel/qclipboard_qws.o kernel/qcolor_qws.o kernel/qcopchannel_qws.o kernel/qsnoopdata_qws.o kernel/qcursor_qws.o kernel/qdirectpainter_qws.o kernel/qdnd_qws.o kernel/qfont_qws.o kernel/qinputcontext_qws.o kernel/qpixmap_qws.o kernel/qprinter_qws.o kernel/qpaintdevice_qws.o kernel/qpainter_qws.o kernel/qwidget_qws.o kernel/qgfx_qws.o kernel/qfontmanager_qws.o kernel/qfontfactorybdf_qws.o kernel/qfontfactoryttf_qws.o kernel/qmemorymanager_qws.o kernel/qwscommand_qws.o kernel/qwsevent_qws.o kernel/qwindowsystem_qws.o kernel/qkeyboard_qws.o kernel/qwscursor_qws.o kernel/qwsdecoration_qws.o kernel/qwsmouse_qws.o kernel/qsharedmemory.o kernel/qwsmanager_qws.o kernel/qwsdefaultdecoration_qws.o kernel/qwshydrodecoration_qws.o kernel/qwsbeosdecoration_qws.o kernel/qwskdedecoration_qws.o kernel/qwswindowsdecoration_qws.o kernel/qwskde2decoration_qws.o kernel/qwsproperty_qws.o kernel/qlock_qws.o kernel/qwsregionmanager_qws.o kernel/qwssocket_qws.o kernel/qsoundqss_qws.o kernel/qsound_qws.o kernel/qnetworkprotocol.o kernel/qsound.o kernel/qabstractlayout.o kernel/qaccel.o kernel/qapplication.o kernel/qasyncimageio.o kernel/qasyncio.o kernel/qbitmap.o kernel/qclipboard.o kernel/qcolor.o kernel/qcolor_p.o kernel/qconnection.o kernel/qcursor.o kernel/qdialog.o kernel/qdragobject.o kernel/qdrawutil.o kernel/qdropsite.o kernel/qevent.o kernel/qfocusdata.o kernel/qfont.o kernel/qfontdatabase.o kernel/qguardedptr.o kernel/qiconset.o kernel/qimage.o kernel/qjpegio.o kernel/qlayout.o kernel/qlayoutengine.o kernel/qtranslator.o kernel/qmetaobject.o kernel/qmime.o kernel/qmngio.o kernel/qmovie.o kernel/qobject.o kernel/qpainter.o kernel/qpalette.o kernel/qpaintdevicemetrics.o kernel/qpicture.o kernel/qpixmap.o kernel/qpixmapcache.o kernel/qpngio.o kernel/qpoint.o kernel/qprinter.o kernel/qrect.o kernel/qregion.o kernel/qrichtext.o kernel/qsignal.o kernel/qsignalmapper.o kernel/qsimplerichtext.o kernel/qsize.o kernel/qsizegrip.o kernel/qstyle.o kernel/qsocketnotifier.o kernel/qstylesheet.o kernel/qtimer.o kernel/qwidget.o kernel/qwmatrix.o kernel/qvariant.o kernel/qlocalfs.o kernel/qurl.o kernel/qurloperator.o kernel/qurlinfo.o kernel/qsemimodal.o widgets/qcompactstyle.o widgets/qbuttongroup.o widgets/qbutton.o widgets/qcdestyle.o widgets/qcheckbox.o widgets/qcombobox.o widgets/qcommonstyle.o widgets/qdial.o widgets/qframe.o widgets/qgrid.o widgets/qgroupbox.o widgets/qhbuttongroup.o widgets/qheader.o widgets/qhgroupbox.o widgets/qhbox.o widgets/qinterlacestyle.o widgets/qlabel.o widgets/qlcdnumber.o widgets/qlineedit.o widgets/qlistbox.o widgets/qlistview.o widgets/qmainwindow.o widgets/qmenubar.o widgets/qmenudata.o widgets/qmotifstyle.o widgets/qmotifplusstyle.o widgets/qmultilineedit.o widgets/qplatinumstyle.o widgets/qpopupmenu.o widgets/qprogressbar.o widgets/qpushbutton.o widgets/qradiobutton.o widgets/qrangecontrol.o widgets/qscrollbar.o widgets/qscrollview.o widgets/qsgistyle.o widgets/qslider.o widgets/qspinbox.o widgets/qsplitter.o widgets/qstatusbar.o widgets/qtabbar.o widgets/qtabwidget.o widgets/qtableview.o widgets/qtextview.o widgets/qtoolbar.o widgets/qtoolbutton.o widgets/qtooltip.o widgets/qvalidator.o widgets/qvbox.o widgets/qvbuttongroup.o widgets/qvgroupbox.o widgets/qwhatsthis.o widgets/qwidgetstack.o widgets/qwindowsstyle.o widgets/qaction.o widgets/qeffects.o widgets/qtextbrowser.o dialogs/qprintdialog.o dialogs/qcolordialog.o dialogs/qfiledialog.o dialogs/qfontdialog.o dialogs/qinputdialog.o dialogs/qmessagebox.o dialogs/qprogressdialog.o dialogs/qtabdialog.o dialogs/qwizard.o iconview/qiconview.o workspace/qworkspace.o network/qdns.o network/qftp.o network/qhostaddress.o network/qnetwork.o network/qserversocket.o network/qsocket.o network/qsocketdevice.o network/qsocketdevice_unix.o canvas/qcanvas.o table/qtable.o xml/qxml.o xml/qdom.o        -L/usr/X11R6/lib  -lm -ljpeg  && mv libqte.so.2.3.12 /opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/lib/; cd /opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/qtopia/lib/ && rm -f libqte.so libqte.so.2 libqte.so.2.3; ln -s libqte.so.2.3.12 libqte.so; ln -s libqte.so.2.3.12 libqte.so.2; ln -s libqte.so.2.3.12 libqte.so.2.3
kernel/qclipboard.o(.text+0x10c): In function `QClipboard::text(QCString&) const':
: multiple definition of `QClipboard::text(QCString&) const'
kernel/qclipboard_qws.o(.text+0x17c): first defined here
/usr/bin/ld: Warning: size of symbol `QClipboard::text(QCString&) const' changed from 190 to 140 in kernel/qclipboard.o
kernel/qclipboard.o(.text+0x198): In function `QClipboard::text() const':
: multiple definition of `QClipboard::text() const'
kernel/qclipboard_qws.o(.text+0x150): first defined here
/usr/bin/ld: Warning: size of symbol `QClipboard::text() const' changed from 25 to 123 in kernel/qclipboard.o
kernel/qclipboard.o(.text+0x214): In function `QClipboard::setText(QString const&)':
: multiple definition of `QClipboard::setText(QString const&)'
kernel/qclipboard_qws.o(.text+0x16c): first defined here
/usr/bin/ld: Warning: size of symbol `QClipboard::setText(QString const&)' changed from 15 to 137 in kernel/qclipboard.o
collect2: ld returned 1 exit status


这才会有后面的
checking for Qt... configure: error: Qt (>= Qt 2.2.2) (library qte) not found. Please check your installation!
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2009-09-16 12:11
我想直接放弃redhat 9是比较省事的做法,既然FriendlyARM验证过在Fedora 9上编译OK,用这个平台应该是安全的:)
如果你比较熟悉redhat平台,可以试试安装一个比较新版本的gcc,比如gcc 4.x试试
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2009-09-16 14:37
引用第10楼aoxing于2009-09-16 14:10发表的  :
我这两天在Redhat9和Fedora9上编译,都是成功的,你这个问题我原来在RHEL4 上编译的时候遇到过,把build-konq里的编译器CC和CXX改成4.3.2的路就编译过了(当时我没有改.bashrc)。

搞清楚Native编译和交叉编译的区别:
X86 -qtopia ==> 运行在X86平台(PC)上,用PC Linux的gcc/g++编译生成;
ARM-qtopia ==> 运行在ARM平台(mini2440)上,用arm-linux交叉编译器编译生成。
现在编译的是X86版本的qtopia,和4.3.2版本的交叉编译器完全没有关系。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
4楼  发表于: 2009-09-16 17:13
如果konq真的是用arm-linux-gcc编译出来的话,那是不可能在X86的PC上运行的。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
5楼  发表于: 2009-09-16 17:33
实践是检验真理唯一的方法,用file命令看一眼x86-qtopia下编译出来的konq就知道了,如果是ARM的,那就是友善之臂不幸写错脚本了:)
(前提是它能编译出来,我就不相信它能去链接X86的qte库)

呵呵,我回头看了一下build-konq, 发现它还是能编译出来的,只是挺佩服写这个脚本的兄弟,configure了两遍,第一次是for ARM的,第二次才是x86的

tar xfvz konq.tar.gz

cd konq
source /opt/FriendlyARM/mini2440/x86-qtopia/qtopia-2.2.0-FriendlyARM/setQpeEnv
CC=arm-linux-gcc CXX=arm-linux-g++  LDFLAGS=-ldl CROSS_COMPILE=1 ./configure --enable-embedded --enable-qt-embedded --enable-qpe --d
isable-debug --enable-static --disable-shared --disable-mt --without-ssl --with-qt-dir=$QTDIR --with-qt-includes=$QTDIR/include --wi
th-qt-libraries=$QPEDIR/lib --with-qtopia-dir=$QPEDIR --with-gui=qpe --host=arm-linux --target=arm-linux

./configure --enable-embedded --enable-qt-embedded --enable-qpe --disable-debug --enable-static --disable-shared --disable-mt --with
out-ssl --with-qt-dir=$QTDIR --with-qt-includes=$QTDIR/include --with-qt-libraries=$QPEDIR/lib --with-qtopia-dir=$QPEDIR --with-gui=
qpe
make


CC=arm-linux-gcc只是对第一次有作用,实际编译的时候用的是最后一次,也就是第二次时候的configure值,CC当然也就是默认的gcc了。
[ 此帖被kasim在2009-09-16 17:56重新编辑 ]
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
6楼  发表于: 2009-09-16 22:05
其实没有什么东西是很“神秘”的,所有的答案都在脚本和源代码里。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
7楼  发表于: 2010-01-16 23:50

 回 22楼(l100198546) 的帖子

如果你真的认真看了帖子,那应该知道需要看什么
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."