2012-03-06 12 views
0

QtCreatorに.cと.cppファイルを含むプロジェクトがあり、現在のツールチェーンGCCでビルドして正常に動作します。QTcreatorクロスコンパイル

私はこのコードを移植して、arm5コアで実行して、Linuxのangstromディストリビューションを実行したいと考えています。

はそれを行うには:

1-Iは

2- QTで新しいプロジェクトを作成し、QTのこのバージョンを追加し、例えばのlinux-ARMv5TE以降-のlinux-gnueabi-ツールチェーンで構築されたQTlibrariesを取得する必要がありますそれに。

3 qtcreatorのツールチェーンパスにlinux-armv5te-linux-gnueabi-toolchainを追加して、コードをビルドすることができます。

私がbuildを押すと、qmakeはこのlinux-armv5te-linux-gnueabi-toolchainをgccで.cファイルをコンパイルし、g ++で.cppファイルをコンパイルするためのmakefileを生成します。

私の論理は正しいですか?

また、上記の手順1を実行するにはどうすればよいですか。

は、私は上記のツールチェーンをダウンロードし、QTcreatorにそれのbinパスを追加した場合、私は(Cとcppのファイルを含む)は、上記議論したのと同じプロジェクトをビルドすることができるだろう?あなた

ありがとうございましたか

答えて

1

私はARM9 S3C Mini2440を使用しました。 Qtサイトからソースコードをダウンロードしてコンパイルしてください。 installコマンドの後

@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を持つことになります。 ARM qmakeツールへのシンボリックリンクを作成する

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

Qt ARMに切り替えるには、環境ファイルを作成します。のは、私が代わりに前のコマンドを使用し、QtCreatorとQtのプロジェクトをコンパイル交差していないプロジェクト

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

をコンパイル横断するために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を生成するので、問題はないはずです。