2012-03-06 2 views
0

.c 및 .cpp 파일을 포함하는 QtCreator의 프로젝트가 있으며 현재 빌드되어 현재 내 toolchain GCC에서 잘 실행됩니다.QTcreator 크로스 컴파일

나는이 코드를 리눅스의 angstrom 배포판을 실행하는 arm5 코어에서 실행하기 위해 이식하기를 원한다.

그렇게하려면

1-I는

2는 QT에서 새 프로젝트를 만들고 QT의 버전을 추가, 예를 들어 리눅스-한 ARMv5TE - 리눅스 - gnueabi-툴체인 빌드 QTlibraries을 얻을 필요 그것에.

3 qtcreator의 toolchain 경로에 linux-armv5te-linux-gnueabi-toolchain을 추가하면 코드를 작성할 수 있습니다.

4- 빌드를 누르면 qmake는 linux-armv5te-linux-gnueabi-toolchain을 사용하여 .c 파일을 gcc로 컴파일하고 .cpp 파일을 g ++로 컴파일하는 makefile을 생성합니다.

내 논리가 맞습니까?

또한 위의 1 단계를 수행 할 수 있습니까? 나는 위의 툴체인을 다운로드하고 그것의 bin 경로가 QTcreator에 추가하는 경우

내가 위의 논의 (C 및 CPP 파일을 포함) 된 동일한 프로젝트를 빌드 할 수있을 것입니다, 당신에게

감사?

답변

1

ARM9 S3C Mini2440을 사용했습니다. Qt 사이트에서 소스 코드를 다운로드하여 컴파일하십시오. 설치 명령 후

@host:/qt-everywhere-opensource-src-4.6.2#./configure \ 
-opensource \ 
-confirm-license \ 
-release -shared \ 
-embedded arm \ 
-xplatform qws/linux-arm-g++ \ 
-depths 16,18,24 \ 
-fast \ 
-optimized-qmake \ 
-pch \ 
-qt-sql-sqlite \ 
-qt-libjpeg \ 
-qt-zlib \ 
-qt-libpng \ 
-qt-freetype \ 
-little-endian -host-little-endian \ 
-no-qt3support \ 
-no-libtiff -no-libmng \ 
-no-opengl \ 
-no-mmx -no-sse -no-sse2 \ 
-no-3dnow \ 
-no-openssl \ 
-no-webkit \ 
-no-qvfb \ 
-no-phonon \ 
-no-nis \ 
-no-opengl \ 
-no-cups \ 
-no-glib \ 
-no-xcursor -no-xfixes -no-xrandr -no-xrender \ 
-no-separate-debug-info \ 
-nomake examples -nomake tools -nomake docs \ 
-qt-mouse-tslib -I/usr/local/tslib/include -L/usr/local/tslib/lib 

@host:/qt-everywhere-opensource-src-4.6.2# make 
@host:/qt-everywhere-opensource-src-4.6.2# make install 

Qt4.6

와 구성 작업 아래, 당신은 당신의 /usr/local/Trolltech/QtEmbedded-4.6.2-arm에서 ARM Qt4.6있을 것이다. Qt는 ARM으로 전환하기 위해

ln -s /usr/local/Trolltech/QtEmbedded-4.6.2-arm/bin/qmake /usr/local/bin/qmake-arm 

만들기 도구 및 환경 파일을 qmake를 ARM으로 symblic 링크를 만듭니다. 의는

cd /your_project_dir 
. /<path_to>/setenv-qt-arm.sh 
qmake-arm 
make 

내가 QtCreator와 Qt는 프로젝트를 컴파일 교차하지 않았다 프로젝트 크로스 컴파일하기 위해서는 그것을 setenv-qt-arm.sh

export QTEDIR=/usr/local/Trolltech/QtEmbedded-4.6.2-arm 
export PATH=/usr/local/Trolltech/QtEmbedded-4.6.2-arm/bin:$PATH 
export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.6.2-arm/lib:$LD_LIBRARY_PATH 
export CPLUS_INCLUDE_PATH=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/include/c++:/usr/local/arm/4.3.2/arm-none-linux-gnueabi/include/c++/4.3.2/arm-none-linux-gnueabi:$CPLUS_INCLUDE_PATH 

을 부르 자, 내가 대신 이전 명령을 사용했다. qmake를 올바른 파일 (qmake-arm)로 설정하면이 qmake가 프로젝트를 컴파일하는 데 필요한 모든 Makefile을 생성하므로 아무런 문제가 없어야한다고 생각합니다.