Fedora Core 5交叉編譯qtopia-2.1.1,發生找不到qpe之問題

我們生活周遭存在太多太多的 embedded system ,過去 embedded system 有專屬的 OS,現在 linux 也可以應用在嵌入式環境,不過本版將廣泛討論所有嵌入式系統不只 linux 喔,歡迎有這方面經驗或有興趣的朋友一同進來討論。

版主: chester

Fedora Core 5交叉編譯qtopia-2.1.1,發生找不到qpe之問題

文章foxlin » 週三 5月 14, 2008 1:16 pm

Fedora Core 5交叉編譯qtopia-2.1.1,發生找不到qpe之問題

各位先進:

也許這問題之前有人提過,但此次似乎有點不同...
也由於之前下列的安裝套件已經在RedHat 9.0上實現過(Kernel 2.4.20),故會再此發表此問題,期望有人可以指導一下:

開發環境:
(1) Host PC : Fedora Core 5 / Linux Kernel 2.6.15_FC5
(2) Target : S3C2410 ARM Embedded / Linux Kernel 2.6.14
(3)開發套件 :
Qt-x11-2.3.2 / Qt-embedded-2.3.10
E2fs-progs-1.35 / Jpeg-6v
tmake-1.11 / Qtopia-free-source-2.1.1
(4) Arm-linux-gcc 3.3.2
(5) Busybox-1.0.0
-------------------------------------------------------------
問題描述:
(1)利用上述安裝套件與交叉編譯gcc-3.3.2完成Busybox-1.0.0編譯後,安裝在/opt/bootcd/ramdisk/ 下,並且可以令我的2410系統完成以NFS Mount的方式開機,此外工作一切正常。

(2)逐步完成上述qtopia安裝套件,且編譯過程中也沒有特別問題發生。最後將 Qtopia-2.1.1 Install在 /opt/bootcd/ramdisk/opt 下

(3) 利用NFS filesystem方式,正常完成2410系統開機程序。
以下為Target Board上之目錄:
<bin> <mnt><dev><etc><opt><usr>. . .
p.s. <opt>即是安裝qtopia資料夾

(4) 當我在Target Board切換目錄由 #/ ---> #opt/bin>下
並執行 ./qpe 卻發生找不到檔案的問題???!!!

(5) 察看目錄下檔案,有一堆執行檔,且沒有link錯誤的顯示

(6) 此外,qtopia所需要的library檔案幾乎已經存放在 opt/lib中,且系統設定已經有export進入。
export LD_LIBRARY_PATH=/usr/lib:/opt/lib
export PATH=/bin:/usr/bin:/sbin:/usr/sbin:/opt/bin
export QTDIR=/opt
export QTEDIR=/opt
export QPEDIR=/opt

(7)上述重要libraries如: libqte / libjpeg / libqotpia /ld-linux... 等皆有在/opt/lib內

-----------------------------------------------------------
請教:
(1) 有人有成功過在 Fedora Core 5交叉編譯成功過qtopia-2.1.1嗎?
(2) 上述問題與交叉編譯busybox-1.0.0的GCC版本有關嗎?
(gcc我已經嘗試過 2.95.3 / 3.3.2 / 3.4.1)
(3) qtopia-2.1.1需要特定版本的gcc編譯器嗎?

希望這問題有人可以指導一下!謝謝....
foxlin
可愛的小學生
可愛的小學生
 
文章: 21
註冊時間: 週三 7月 11, 2007 1:38 am

文章訪客 » 週三 5月 14, 2008 6:31 pm

.....
(4) 當我在Target Board切換目錄由 #/ ---> #opt/bin>下
並執行 ./qpe 卻發生找不到檔案的問題???!!!
....

#opt/bin與#/opt/bin是不同的。
訪客
 

文章foxlin » 週四 5月 15, 2008 4:08 pm

Anonymous 寫:
.....
(4) 當我在Target Board切換目錄由 #/ ---> #opt/bin>下
並執行 ./qpe 卻發生找不到檔案的問題???!!!
....

#opt/bin與#/opt/bin是不同的。


-----------------------------------------------------------
感謝指導~
因為筆誤造成誤會不好意思~
其實我已經使用過一陣子Embedded System了,所以基本的操作與設定應該很少出錯才是。
foxlin
可愛的小學生
可愛的小學生
 
文章: 21
註冊時間: 週三 7月 11, 2007 1:38 am

文章路人甲 » 週四 5月 15, 2008 7:18 pm

我好像有遇到過類似的問題
記得是library有缺
路人甲
 

文章foxlin » 週五 5月 16, 2008 9:16 am

路人甲 寫:我好像有遇到過類似的問題
記得是library有缺


路人甲 寫:我好像有遇到過類似的問題
記得是library有缺


這兩天思考了一下有一點可供大家參考:
(1)透過 ldd qpe可以找出其相關的library檔案
(2)將上述所需的檔案放入 lib 資料夾後,然後將其環境路徑設定一下,應該要可以動作才對。
(3)逐一回想編譯過程中,發現在交叉編譯e2fs-progs-1.35階段時,所產生的libuuid.*檔案似乎沒有連結關係,如:
libuuid.so.x.x ----> libuuid.so.a.b
libuuid.so.a.b ----> libuuid.so
libuuid.so
(4)此外,若是缺少library時,當執行./qpe時應該會有找不到xxx.so等相關訊息才是。(除非是找不到ld-linux.so)

(5)基於上述,是我目前想澄清的方向,若是其他先進有何建議歡迎指導一下!謝謝!
foxlin
可愛的小學生
可愛的小學生
 
文章: 21
註冊時間: 週三 7月 11, 2007 1:38 am

文章訪客 » 週六 5月 17, 2008 12:46 am

最好還是要有log,沒有log還是沒辦法抓出問題。
訪客
 

Re: Fedora Core 5交叉編譯qtopia-2.1.1,發生找不到qpe之問題

文章foxlin » 週三 6月 11, 2008 2:18 am

[quote="foxlin"]Fedora Core 5交叉編譯qtopia-2.1.1,發生找不到qpe之問題

對於此問題,到今天已經找出問題原因了!

重新整理下整個問題:

(1) 最終目的是想在 Fedora Core 5-LINUX-2.6.15環境下交叉編譯出可以在S3C2410 ARM平台可供執行的Qtopia-2.1.1
(2) 但是經過交叉編譯,且過程是成功的狀態下,當我在Target Board上執行 ./qpe 執行檔時卻發現,SHELL回應 couldn't find the file....!@#$%

問題追蹤過程:
(1) 編寫一個簡單的程式: hello.c
#include <stdio.h>
int main(void)
{
printf("Hello...\n");
return 0;
}

且利用 arm-linux-gcc -o hello hello.c 進行交叉編譯。成功後將其hello 執行檔下載到Target Board中並執行之,但卻仍發現 ./hello : /bin/sh couldn't find hello !@#$%

但是利用arm-linux-gcc -static -o hello hello.c
所產生的執行檔卻可以正常在Target Board上執行。

至此已經可以確定是有某些Library檔案沒有正確被交叉編譯或是在Target Board上沒有被正確指定。

(2)由上經驗,我在 qt-embedded 下有個examples資下夾,其下有很多Qt-embedded範例程式。我挑選 qte/examples/progressbar來當我測試程式。並將其編譯成執行檔後利用 arm-linux-strings來察看執行檔內容。 ---> arm-linux-strings progressbar
/lib/ld-linux.so.2
libqte.so.2
_ZNK7QWidget15customWhatsThisEv
_ZN7QWidget8qwsEventEP8QWSEvent
_ZN7QWidget10setPaletteERK8QPalette
_ZNK6QGList5writeER11QDataStreamPv
_ZN6QTimerD1Ev
_ZN12QApplicationD1Ev
_ZTV6QGList
_ZN7QWidget10adjustSizeEv
_ZNK6QGList5countEv
_ZN11QCollection7newItemEPv
_ZN7QWidget4moveEii
_ZN6QFrame15setMidLineWidthEi
_ZN6QFrame9setMarginEi
_ZNK12QPaintDevice7fontMetEP5QFontiPKci
_ZN7QWidget19setBackgroundPixmapERK7QPixmap
_ZThn36_NK7QWidget6metricEi
_ZN7QWidget9setCursorERK7QCursor
_ZN7QWidget7setMaskERK7QBitmap
_ZN7QWidget15keyReleaseEventEP9QKeyEvent
_ZN12QButtonGroup9moveFocusEi
_ZN11QMetaObject14new_metaobjectEPKcS1_P9QMetaDataiS3_iP10QClassInfoi
_ZNK7QWidget8scanLineEi
_ZN7QWidget10setEnabledEb
_ZN7QWidget15mousePressEventEP11QMouseEvent
_DYNAMIC
_ZN12QButtonGroup12setExclusiveEb
_ZN7QWidget11setAutoMaskEb
_ZN7QWidget4showEv
_ZN7QWidget16setSizeIncrementEii
_ZN7QWidget14setFocusPolicyENS_11FocusPolicyE
_ZNK12QButtonGroup9classNameEv
_ZN7QWidget8setFocusEv
_ZN6QFrame13setFrameStyleEi
_ZN6QTimer4stopEv
_ZN7QWidget9setWStateEj
_ZN7QWidget18focusNextPrevChildEb
_ZN7QWidget17setBackgroundModeENS_14BackgroundModeE
_ZN7QObject11eventFilterEPS_P6QEvent
_ZN7QObject7connectEPKS_PKcS1_S3_
_ZN12QButtonGroupC2EiN2Qt11OrientationERK7QStringP7QWidgetPKc
_ZN7QWidget6createEjbb
_ZN7QWidget9setWFlagsEj
_ZN6QFrame13drawFrameMaskEP8QPainter
_ZN7QWidget13keyPressEventEP9QKeyEvent
_ZN9QGroupBox10updateMaskEv
_ZN7QWidget14setMaximumSizeEii
_ZN6QFrame16drawContentsMaskEP8QPainter
_ZN6QGDict12remove_asciiEPKcPv
_ZN12QProgressBar5resetEv
_ZN9QGroupBox11resizeEventEP12QResizeEvent
_ZN7QWidget7setNameEPKc
_ZNK7QWidget6metricEi
_ZN7QWidget13paletteChangeERK8QPalette
_ZN6QGListD1Ev
_ZN9QGroupBox5eventEP6QEvent
_ZN7QWidget13focusOutEventEP11QFocusEvent
_ZN7QWidget14setMinimumSizeEii
_ZN7QWidget10closeEventEP11QCloseEvent
_ZN7QWidget10enterEventEP6QEvent
_ZdlPv
_ZN11QMetaObject12new_metadataEi
_ZN9QGroupBox10childEventEP11QChildEvent
_ZN6QFrame12setFrameRectERK5QRect
_ZN7QWidget21backgroundColorChangeERK6QColor
_init
_ZN7QWidget17setKeyCompressionEb
_ZN9QGroupBox8setTitleERK7QString
_ZN7QWidget7setIconERK7QPixmap
_ZN7QWidget15setMinimumWidthEi
_ZN6QTimer5startEib
_ZN7QString11shared_nullE
_ZN10QBoxLayout9addWidgetEP7QWidgetii
_ZN7QWidget8reparentEPS_jRK6QPointb
_ZN7QWidget9hideEventEP10QHideEvent
_ZN9QGroupBox12focusInEventEP11QFocusEvent
_ZN7QWidget17setMicroFocusHintEiiiib
_ZN12QProgressBarC1EiP7QWidgetPKcj
_ZN7QWidget7setFontERK5QFont
_ZN7QWidget8setFRectERK5QRect
_ZN12QApplication4execEv
_ZN7QWidget17setUpdatesEnabledEb
_ZN7QWidget13showMaximizedEv
_ZN12QButtonGroup16staticMetaObjectEv
_ZThn36_NK7QWidget15graphicsContextEb
_ZN7QWidget17mouseReleaseEventEP11QMouseEvent
_ZN7QWidget13setFocusProxyEPS_
_ZN11QMetaObject14new_metaaccessEi
_ZN6QTimerC1EP7QObjectPKc
_ZN7QWidget13showMinimizedEv
_ZN11QVBoxLayoutC1EiPKc
_ZN11QStringData10deleteSelfEv
_ZN6QFrame9drawFrameEP8QPainter
_ZN6QGList12compareItemsEPvS0_
_ZN7QObject16disconnectNotifyEPKc
_ZN7QWidget4hideEv
_ZN6QGList4readER11QDataStreamRPv
_ZN7QWidget5closeEb
_ZThn36_NK7QWidget12bytesPerLineEv
_ZN7QWidget13setFixedWidthEi
_ZN6QGListD0Ev
_ZNK12QPaintDevice7fontInfEP5QFonti
_ZN7QWidget9showEventEP10QShowEvent
_ZN11QMetaObject15set_slot_accessEPN9QMetaData6AccessE
_ZN7QWidget8setCRectERK5QRect
_ZN7QWidget11styleChangeER6QStyle
_ZN7QWidget21mouseDoubleClickEventEP11QMouseEvent
_ZN7QObject11removeChildEPS_
_ZN6QFrame12setLineWidthEi
_ZN7QWidget10wheelEventEP11QWheelEvent
_ZN11QGridLayoutC1EP7QLayoutiiiPKc
_ZN7QWidget11unsetCursorEv
_ZN7QObject20badSuperclassWarningEPKcS1_
_ZN9QGroupBox10fontChangeERK5QFont
_ZN11QGridLayout18addMultiCellWidgetEP7QWidgetiiiii
_ZN12QPaintDevice3cmdEiP8QPainterP13QPDevCmdParam
_fini
qApp
_ZN7QWidget10showNormalEv
_ZN7QWidget10leaveEventEP6QEvent
_ZN7QWidget7setMaskERK7QRegion
_ZN7QWidget14setAcceptDropsEb
_ZN7QObject10timerEventEP11QTimerEvent
_ZNK7QWidget12bytesPerLineEv
_ZN11QPushButtonC1ERK7QStringP7QWidgetPKc
_ZN9QGroupBox12setAlignmentEi
_ZN7QWidget21setPalettePropagationENS_15PropagationModeE
_ZN12QButtonGroup9setButtonEi
_ZNK7QWidget15graphicsContextEb
_ZN7QObject11insertChildEPS_
_ZN7QWidget11setIconTextERK7QString
_ZN7QWidget15setActiveWindowEv
_ZN7QWidget18setBackgroundColorERK6QColor
_ZN12QApplication13setMainWidgetEP7QWidget
_ZN9QGroupBox10paintEventEP11QPaintEvent
_ZNK9QGroupBox8sizeHintEv
_ZN12QButtonGroup23setRadioButtonExclusiveEb
_ZThn36_NK7QWidget8scanLineEi
_ZN7QStringC1EPKc
_ZNK12QApplication9translateEPKcS1_S1_
_GLOBAL_OFFSET_TABLE_
_ZN7QWidget22backgroundPixmapChangeERK7QPixmap
_ZNK7QWidget15minimumSizeHintEv
_ZN7QWidget10setCaptionERK7QString
objectDict
_ZN7QWidget9moveEventEP10QMoveEvent
_ZN11QGridLayout9addLayoutEP7QLayoutii
_Znwj
_ZN9QGroupBox15setColumnLayoutEiN2Qt11OrientationE
_ZN12QRadioButtonC1ERK7QStringP7QWidgetPKc
_ZN7QWidget6resizeEii
_ZN6QFrame12frameChangedEv
_ZN7QWidget13enabledChangeEb
_ZN7QWidget6polishEv
_ZN6QFrame12drawContentsEP8QPainter
_ZN6QGList5clearEv
_ZN7QObject13connectNotifyEPKc
_ZN7QWidget14mouseMoveEventEP11QMouseEvent
_ZN7QWidget11customEventEP12QCustomEvent
_ZN7QWidget11setGeometryERK5QRect
_ZN11QCollection10deleteItemEPv
__data_start
_Jv_RegisterClasses
_ZN7QWidget11setGeometryEiiii
_ZN7QWidget16setMouseTrackingEb
_ZN7QWidget18setFontPropagationENS_15PropagationModeE
_ZN12QApplicationC1ERiPPc
_ZN7QWidget7destroyEbb
_ZN7QObject16checkConnectArgsEPKcPKS_S1_
_ZN12QButtonGroupD2Ev
_ZNK7QWidget14heightForWidthEi
_ZNK6QFrame10sizePolicyEv
__gmon_start__
libstdc++.so.6
libm.so.6
libgcc_s.so.1
libc.so.6
abort
__cxa_atexit
strcmp
_IO_stdin_used
__libc_start_main
_edata
__bss_start
__bss_start__
_end
__bss_end__
__end__
GLIBCXX_3.4
GLIBC_2.1.3
GLIBC_2.0
Qt Example - ProgressBar
Progress Bar
&Slow
&Normal
&Fast
&Start
&Reset
2clicked()
1slotStart()
1slotReset()
1slotTimeout()
2timeout()
&Pause
&Continue
ProgressBar
slotReset()
slotStart()
QButtonGroup
slotTimeout()

粗黑字體表示該執行檔需要的library的檔案。

(3)在 /usr/local/arm/3.4.1/arm-linux/lib下複製上述所需的library檔到target上,並正確設定環境變數,即可執行progressbar執行檔。

在此與各位經驗分享!
foxlin
可愛的小學生
可愛的小學生
 
文章: 21
註冊時間: 週三 7月 11, 2007 1:38 am


回到 embedded system

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客