EZ-S3C6410 보드를 사용합니다.


호스트 PC: 우분투 10.04 를 깔았습니다.


QT 를 사용해서 인터페이스를 만들기 위해서 작업을 했지만 다음과 같은 문제가 발생하였습니다.

QT 를 사용하고 터치스크린이 되도록 하기 위해서


1. tslib 를 먼저 깔았습니다.

tslib 는 다음을 다운받아 사용했으며


kergoth-tslib-1.0-81-ga362845.tar.gz


./configure --prefix=/usr --enable-shared --disable-h3600 --disable-corgi --disable-collie --enable-input --disable-arctic2 --disable-ucb1x00 --build=i386-linux --host=arm-linux


위와 같이 configure 했습니다.


2. 툴체인은 arm-toolchain-3.4.3.tar.gz 를 / 에서 압축을 풀었습니다.

컴파일을 했는데 타겟보드에서 실행하니까 no such file and directory 에러가 발생하였습니다.

포럼에서 찾아보니 툴체인을 arm-linux-gnueabi-4.3.2.tar.gz 을 다운받아 사용하라고 해서

이것을 / 에서 풀었습니다. (S3C6410 보드는 Ramdisk 가 4버전으로 만들어졌기 때문에 생성된 바이너리를 인식하지

못하는 것으로 설명되어 있습니다. 제가 생각하기에도 무슨 라이브러리가 없다는 에러가 아니고 처음부터 실행조차

되지 않는것으로 보아 분명 이 문제라고 생각했습니다. 타겟보드에 설치한 qt-embedded-linux-opensource-src-4.5.1 의

lib 폴더를 복사해서 이미 깐 상태입니다.)


3. 그리고 QT 크로스컴파일러는 qt-embedded-linux-opensource-src-4.5.1 를 깔았습니다.


깔기전에 qmake.conf 설정을 다음과 같이 바꾸었습니다.


# modifications to g++.conf
QMAKE_CC = arm-generic-linux-gnueabi-gcc
QMAKE_CXX = arm-generic-linux-gnueabi-g++
QMAKE_LINK = arm-generic-linux-gnueabi-g++
QMAKE_LINK_SHLIB = arm-generic-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR = arm-generic-linux-gnueabi-ar cqs
QMAKE_OBJCOPY = arm-generic-linux-gnueabi-objcopy
QMAKE_STRIP = arm-generic-linux-gnueabi-strip
QMAKE_RANLIB = arm-generic-linux-gnueabi-ranlib

QMAKE_INCDIR = /usr/local/include
QMAKE_LIBDIR = /usr/local/lib


그리고 다음과 같은 configure 설정으로 install 하였습니다.


./configure -embedded arm -xplatform qws/linux-arm-g++ -prefix /usr/local/qt -qt-mouse-tslib -little-endian -no-armfpa -qt-gfx-transformed -qt-gfx-linuxfb -nomake demos -nomake examples -no-svg -no-phonon -no-qt3support -no-feature-CURSOR -L/usr/local/lib -I/usr/local/include


4. 그리고 이번에 새로 나온 QT Creator 를 깔았습니다.


qt-sdk-linux-x86-opensource-2010.05.1.bin


이것은 설치하기가 쉽더군요.


5. 이제 실행파일을 만들어야 해서

QT Creator 프로젝트 항목에서 크로스컴파일러를 이미 깐 qt-embedded-linux-opensource-src-4.5.1 를 지정해 주고 빌드를

했습니다.


그런데 다음과 같은 에러가 발생하였습니다.

<style type="text/css">p, li { white-space: pre-wrap; }</style>

Building debugging helper library in /home/kentech/kenARM/qtsdk-2010.05/qtc-debugging-helper/134437412/

Running /usr/bin/make distclean...

rm -f gdbmacros.o

rm -f *~ core *.core

rm -f libgdbmacros.so.1.0.0

rm -f libgdbmacros.so libgdbmacros.so.1 libgdbmacros.so.1.0 libgdbmacros.a

rm -f Makefile

Running /usr/local/qt/bin/qmake ...

Cannot find file: .

Running /usr/bin/make ...

arm-generic-linux-gnueabi-g++ -c -pipe -g -Wall -W -D_REENTRANT -fPIC -DUSE_QT_GUI=1 -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/qt/mkspecs/qws/linux-arm-g++ -I. -I/usr/local/qt/include/QtCore -I/usr/local/qt/include/QtGui -I/usr/local/qt/include -I. -I. -I/usr/local/qt/include -o gdbmacros.o gdbmacros.cpp

rm -f libgdbmacros.so.1.0.0 libgdbmacros.so libgdbmacros.so.1 libgdbmacros.so.1.0

arm-generic-linux-gnueabi-g++ -Wl,-rpath,/usr/local/qt/lib -shared -Wl,-soname,libgdbmacros.so.1 -o libgdbmacros.so.1.0.0 gdbmacros.o -L/usr/local/qt/lib -lQtGui -L/usr/local/lib -L/usr/local/qt/lib -lts -lQtNetwork -lQtCore -lm -lrt -ldl -lpthread

/usr/lib/gcc/arm-generic-linux-gnueabi/4.3.2/../../../../arm-generic-linux-gnueabi/bin/ld: ERROR: Source object /usr/local/qt/lib/libQtGui.so has EABI version 0, but target libgdbmacros.so.1.0.0 has EABI version 4

/usr/lib/gcc/arm-generic-linux-gnueabi/4.3.2/../../../../arm-generic-linux-gnueabi/bin/ld: failed to merge target specific data of file /usr/local/qt/lib/libQtGui.so

/usr/lib/gcc/arm-generic-linux-gnueabi/4.3.2/../../../../arm-generic-linux-gnueabi/bin/ld: ERROR: Source object /usr/local/lib/libts.so has EABI version 0, but target libgdbmacros.so.1.0.0 has EABI version 4

/usr/lib/gcc/arm-generic-linux-gnueabi/4.3.2/../../../../arm-generic-linux-gnueabi/bin/ld: failed to merge target specific data of file /usr/local/lib/libts.so

/usr/lib/gcc/arm-generic-linux-gnueabi/4.3.2/../../../../arm-generic-linux-gnueabi/bin/ld: ERROR: Source object /usr/local/qt/lib/libQtNetwork.so has EABI version 0, but target libgdbmacros.so.1.0.0 has EABI version 4

/usr/lib/gcc/arm-generic-linux-gnueabi/4.3.2/../../../../arm-generic-linux-gnueabi/bin/ld: failed to merge target specific data of file /usr/local/qt/lib/libQtNetwork.so

/usr/lib/gcc/arm-generic-linux-gnueabi/4.3.2/../../../../arm-generic-linux-gnueabi/bin/ld: ERROR: Source object /usr/local/qt/lib/libQtCore.so has EABI version 0, but target libgdbmacros.so.1.0.0 has EABI version 4

/usr/lib/gcc/arm-generic-linux-gnueabi/4.3.2/../../../../arm-generic-linux-gnueabi/bin/ld: failed to merge target specific data of file /usr/local/qt/lib/libQtCore.so

collect2: ld returned 1 exit status

make: *** [libgdbmacros.so.1.0.0] 오류 1


이런 상태이므로 실행파일을 생성할 수 없고 타겟보드에서 확인할 수 도 없습니다.


포럼에서는 다음과 같은 질문과 답변이 있었습니다.

NFS를 이용하여 mount하였고, ls명령이나 vi명령으로 파일목록을 보거나, 파일 내부를 보는 것은 됩니다.

하지만 arm-linux-gcc를 이용하여 컴파일한 파일을 실행시키면

no such file or directory라는 오류가 발생합니다.

혹시나 해서 파일을 root디렉토리로 복사하여 실행해보았지만 마찮가지 였습니다.

컴파일에 문제가 있나해서 LCD테스트 프로그램을 다운 받아서 실행해보았지만 같은 증상을 보입니다.

도와주세요~!

**********************

서버의 nfs설정 파일 내용입니다.(/etc/exports)

/mnt/nfs 222.116.135.*(rw, sync, no_root_squash)


서버는 vmware를 이용하여 fedora를 돌리고 있구요.

vmware는 네트워크브리지를 이용하여 고정아이피를 할당받은 상태입니다.


전화로 문의주셔서 제가 답해드린데로 하고 잘 되시는지요? ^^


arm-linux- 가 아닌 arm-generic-linux-gnueabi- 버전으로 빌드하셨을 때 잘 되는지요?

전자는 3.4.3 이고 후자는 4.3.2 입니다.

EZ-S3C6410은 램디스크가 4.3.2로 맞춰서 개발되었습니다.

그래서 발생한 문제 인 듯 하니 한번 확인해 보세요.


네~컴파일러 문제 였어요 잘해결되었습니다.~~~^^ 감사해요~


//


저도 같은 과정을 밟았다고 생각했는데 잘 안되는군요

벌써 QT 를 이용해서 compile 한것도 수십번 되는 것 같습니다.

위의 경우는 잘 되었다고 하는데 참...


ld: ERROR: Source object /usr/local/qt/lib/libQtGui.so has EABI version 0, but target libgdbmacros.so.1.0.0 has EABI version 4


의 의미가 도대체 뭔지 아무리 찾아보도 알수가 없군요. libQt...so 는 툴체인에서 제공하는건지 qt-embedded-linux-opensource-src-4.5.1 를 깔면 생기는 건지 이제 도대체 헤깔립니다.


전화로 미리 전화드렸습니다.


참고사항이라도 좋으니 빠른 답변 부탁드립니다.