2016-11-04 18 views
3

私はYoctoを使ってQtツールチェーンを構築しました。私はそれをインストールし、Yoctoによって生成されたスクリプトを実行する環境変数を設定しました。QtCreatorでクロスコンパイルツールチェーンを設定するにはどうすればよいですか?

instructionsに続いてQtCreatorとconfigure my cross-compiler kitを開きます。 私はこれを構築することができないよ:

#include <QApplication> 
#include <QPushButton> 


int main(int argc, char **argv) 
{  
    QApplication a(argc, argv);  
    QPushButton hello("Hello world!", 0); 
    hello.resize(100, 30); 
    hello.show();  
    return a.exec();  
} 

はこのエラーを取得:

(.qtversion[qt_version_tag]+0x0):-1: error: undefined reference to `qt_version_tag' 

だから私の代わりにこれを構築しよう:

#include <stdio.h> 

int main() 
{ 
    printf("Hello world!\n"); 
    return 0; 
} 

それは大丈夫です。しかし、ターゲットにデプロイして実行しようとすると、ターゲット・アーキテクチャー(アーム)用にコンパイルされていないため、実行できません。

helloworld: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ldd 

非常に示すことができ、この警告もあります:

:-1: warning: "/usr/bin/gcc" is used by qmake, but "/opt/poky/2.1.1/sysroots/i686-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc" is configured in the kit. 
Please update your kit or choose a mkspec for qmake that matches your target environment better. 

は、私は私のキットの構成にmkspec設定しようとしたが、結果はそれは同じです。

+0

私はqmakeを使ってコマンドラインからコンパイルしようとしましたが、それは正しいことでした。 Qtクリエーターの設定に問題があります。 – anat0lius

+0

qmakeを手動で実行すると、キットに間違ったqmakeが設定されている可能性があります –

+0

プロジェクトの設定>ビルド>システム環境を開いた場合、setup-enviornmentスクリプトで設定した変数があります。だから私はそれが動作しない理由を理解していない。 – anat0lius

答えて

2

解決済み。たぶん私はmkspecを手動で設定するとどちらもうまくいきませんでした。それはそうではありません。それはちょうど私は別の問題を抱えていて、正しくテストできませんでした。問題はmkspecでした。それは正しいことではありませんでした。それはlinux-g++を指していて、私はそれが正しいmkspecを指しているように修正しました。とにかくQt cretatorは私に彼にcan't find itを教えている!それはバグなのですか?最初の問題(GUIのコンパイル)もこれで解決されました。

+0

実際、バグだった。 4.3で既に修正済み:https://codereview.qt-project.org/#/c/176005/ – anat0lius

関連する問題