2017-09-07 13 views
0

私はzynqチップセットとArmv7プロセッサとUbuntu 12.04を持つボードを持っています。 QtCreatorを使ってリモートでC++プログラムをビルドしてデバッグしたいのですが。 プログラムusing this linkを構築するためのキットを作成しようとしました。コンパイラをボードのツールチェーンに追加し、Qtバージョン4.8.1をキットに追加しました(ボード上のqtバージョンは4.8.1です)。QtCreator上のリモートアームデバイス用のC++をビルドしようとしましたが、実行可能ファイルは64bitです

コードは正常に構築されます。問題は私のボード上でバイナリが実行可能でないことです.64ビットバイナリで、ボードは64ビットではないようです。 何か不足していますか?

qtをどこでもコンパイルするための設定が正しいことを確認して、qmakeを望みましたか?

btw私自身のOSはUbuntu 16.04 64bitです。

答えて

0

時間と時間をかけて検索して別のものを試してみると、その理由がわかりました。まず第一に、@ michal-fとして私は32ビットのUbuntuをインストールしたと言いました。 ARMバイナリが生成されましたが、QtCreatorはintel proccessor用にコンパイルされました。

私はQt変数がシステム変数に関係していないことを知りませんでした。なぜなら私はCROSS_COMPILE変数を端末に追加しましたが、これも私のキット環境変数に追加するべきです。

したがって、MakeFileのフレーズ${CROSS_COMPILE}g++は単にg ++であり、出力はシステムg ++のバイナリコンパイルです。

私はそれが私が早く見つけたはずのものだったと知っていますが、この愚かなものは私のような初心者のためにインターネット上のどこかにあったはずです。だから次の人がこの同じ問題に遭遇したらうまくいけばこのポストを見つけるでしょう。

0

ザイリンクスのページの命令では、ARMのクロスコンパイラのビルド方法が説明されていますが、32ビットLinuxプラットフォームでこれらの手順を実行すると仮定しています。一方、-xplatform qws/linux-arm-gnueabi-g++オプションは32ビットコンパイラを生成する必要があります。

あなたのコードは正しいコンパイラビルドで正しいオプションでビルドされていますか?コマンドラインから最小限の例を構築し、fileコマンドがバイナリについて何を伝えているか確認してください。私にとっては、あなたのプロジェクトを実際にクロスコンパイルしないかのように見えます。

+0

私のキットでコンパイラをダブルチェックしました。ボードCDに含​​まれているg ++コンパイラで、-vを実行するとターゲットが 'arm-xilinx-linux-gnueabi'と伝えられます。キットでサンプルのhello worldをコンパイルすると、64ビットのバイナリになります。 –

+0

Zynq上のARMが32ビットの場合、間違ったコンパイラがあります - ごめんなさい。ザイリンクスにお問い合わせください。 –

関連する問題