タグ付けされた質問 「cross-compiling」

8
Ubuntuで32ビット上で64ビットプログラムをクロスコンパイルすると、「bits / c ++ config.h」が含まれていない
Ubuntu 10.10の32ビットバージョンを実行していて、64ビットターゲットにクロスコンパイルしようとしています。私の研究に基づいて、g ++-multilibパッケージをインストールしました。 プログラムは非常にシンプルなHello Worldです。 #include <iostream> int main( int argc, char** argv ) { std::cout << "hello world" << std::endl; return 0; } コンパイル: g++ -m64 main.cpp エラー: In file included from main.cpp:1: /usr/include/c++/4.4/iostream:39: fatal error: bits/c++config.h: No such file or directory compilation terminated. 私が発見したc++config.hファイルを、彼らは下に常駐i486-linux-gnuしてi686-linux-gnuいるディレクトリ/usr/include/c++/4.4/ありませんc++config.hでは/usr/include/c++/bits。 私が欠けているものについてのアイデアはありますか?-m64フラグなしのコンパイルは正常に機能します(a.outが作成され、正しく実行されます)。 編集 @nightcrackerからのヒントのおかげで、32ビットシステムと64ビットシステムのインクルード構造についてもう少し調査しました。以下に、問題を一時的に「修正」する回答を追加しましたが、次のアップデートで壊れると思います。基本的に、インクルードファイルが不足している/usr/include/c++/4.4/i686-linux-gnu/64というサブディレクトリが含まれているはずのというディレクトリbitsが不足しています。どのパッケージがこれを処理する必要があるか考えていますか?

11
Nachosソースコードのコンパイル中のエラー「gnu / stubs-32.h:No such file or directory」
ラップトップにナチョスをインストールしようとしていますが、ラップトップにUbuntu 11.04をインストールしています。 コードはCで記述されているため、ビルドするにはクロスコンパイラが必要だと思います。これが私の問題です。コマンドを使用してMIPSクロスコンパイラのソースコードをダウンロードしました wget http://mll.csie.ntu.edu.tw/course/os_f08/assignment/mips-decstation.linux-xgcc.gz そして私はそれを使って解凍しました tar zxvf mips-decstation.linux-xgcc.gz これは問題ありませんが、nachos osのソースコードをビルドしようとすると、makeを使用してこのエラーが発生します- /usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory compilation terminated. make: *** [bitmap.o] Error 1 私はここで与えられた指示に従うようにしています-http://mll.csie.ntu.edu.tw/course/os_f08/217.htmそして、私がmakeを使おうとするときを除いて、すべてがうまく機能しています。

6
OSXでGoをクロスコンパイルしますか?
OS Xでgoアプリをクロスコンパイルして、WindowsとLinuxのバイナリをビルドしようとしています。ネットで見つけたものをすべて読みました。私が見つけた最も近い例が公開されています(go-nutsメーリングリストでの多くの未完成の議論は別として): http://solovyov.net/en/2012/03/09/cross-compiling-go/ それでも私のインストールでは動作しません。1.0.2に移行しました。1.0.2はごく最近のバージョンなので、上記の例はすべてこのバージョンには適用されないようです。 ./make.bash --no-cleanENV varsを386 / windowsに設定して試してみましたが、ビルドはビルドdarwin/amd64されますが、別のコンパイラーをビルドすることを想定しているENVでの設定を完全に無視して、私のインストール用にビルドをビルドします。 どのようにしてそれを行うことができますか?


8
LinuxホストマシンにRaspberry Piクロスコンパイラをインストールする方法
私のUbuntuマシンでRaspberry Piをクロスコンパイルできるようにしようとしています。 最初の試みでは、Ubuntuリポジトリにあるarm-linux-gnueabiコンパイラを使用していました。私はこれを手に入れました。すべての依存関係を構築し、cmakeプロジェクトでクロスコンパイラを使用することができました。 しかし、私はhfバージョンを使用する必要があると思うので、arm-linux-gnueabihfに切り替えました。その後、これはarmv6であるため、Raspberry Piでは機能しないことに気付きました。 少しグーグルで調べた後、GitHubのビルド済みツールチェーンを見つけました。 ツールチェーンをダウンロードしましたが、「インストール」方法がよくわかりません。ファイルをホームディレクトリに抽出しました。ディレクトリ構造は次のようになります。 /gcc-linearo-arm-linux-gnueabihf-raspbian /arm-linux-gnueabihf /bin (contains g++, gcc, etc) /lib (contains libstdc++ library) /bin (contains arm-linux-gnueabihf-g++, arm-linux-gnueabihf-...) /lib (gcc lib stuff) ディレクトリをINNER binフォルダーに変更すると、ターミナルからテストプログラムを問題なくコンパイルできます。 ~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/ arm-linux-gnueabihf/bin$ g++ test.cpp -o test 次に、ツールのプレフィックスバージョンが含まれるOUTER binフォルダーでテストプログラムをコンパイルしようとしました。 ~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin$ arm-linux-gnueabihf-g++ test.cpp -o test ただし、今すぐ(内部のbinディレクトリの外側から)コンパイラーを使用しようとすると、ツールチェーンに付属しているlibstdc ++共有ライブラリーを見つけることができません。 arm-linux-gnueabihf-gcc: error while loading shared libraries: libstdc++.so.6: …

4
静的メンバーへの未定義の参照
クロスコンパイラを使用しています。私のコードは: class WindowsTimer{ public: WindowsTimer(){ _frequency.QuadPart = 0ull; } private: static LARGE_INTEGER _frequency; }; 次のエラーが発生します。 `WindowsTimer :: _frequency 'への未定義の参照 私もそれをに変更しようとしました LARGE_INTEGER _frequency.QuadPart = 0ull; または static LARGE_INTEGER _frequency.QuadPart = 0ull; しかし、まだエラーが発生しています。 誰もが理由を知っていますか?

5
LinuxからWindowsターゲットへのクロスコンパイル用にQtを構成するにはどうすればよいですか?
Linux x86_64ホストマシンを使用して、Windows x86_64ターゲット用のQtライブラリ(そして最終的には私のアプリケーション)をクロスコンパイルしたいと思います。私は親密な気がしますが、このプロセスのいくつかの部分について根本的な誤解があるかもしれません。 まず、Fedoraマシンにすべてのmingwパッケージをインストールしてwin32-g++から、環境に合わせてqmake.confファイルを変更しました。ただし、Qt:-platformおよび-xplatform。のいくつかの一見明らかな構成オプションで立ち往生しているようです。Qtのドキュメントには、それ-platformが(コンパイルする)ホストマシンアーキテクチャ-xplatformであり、デプロイするターゲットプラットフォームである必要があると記載されています。私の場合は、Iセット-platform linux-g++-64と-xplatform linux-win32-g++のlinux-win32の-G ++は、私の修正のWin32-G ++の構成です。 私の問題は、これらのオプションを指定してconfigureを実行した後、クロスコンパイラ(x86_64-w64-mingw32-gcc)ではなくシステムのコンパイラが呼び出されることです。この-xplatformオプションを省略-platformしてターゲット仕様(linux-win32-g ++)に設定すると、クロスコンパイラが呼び出されますが、Unix関連の関数が定義されていないことが検出されるとエラーが発生します。 これが私の最新の試みからのいくつかの出力です:http://pastebin.com/QCpKSNev。 質問: LinuxホストからWindows用のQtのようなものをクロスコンパイルすると、ネイティブコンパイラは、必要があり、これまでに呼び出されますか?つまり、クロスコンパイルの過程で、クロスコンパイラだけを使うべきではないでしょうか。-xplatformオプションを指定したときに、Qtのconfigureスクリプトがシステムのネイティブコンパイラを呼び出そうとする理由がわかりません。 mingwクロスコンパイラを使用している場合、いつスペックファイルを処理する必要がありますか?GCCのスペックファイルはまだ私には謎のようなものなので、ここでの背景が私に役立つかどうか疑問に思っています。 一般に、qmake.confでクロスコンパイラを指定する以外に、他に何を考慮する必要がありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.