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が不足しています。どのパッケージがこれを処理する必要があるか考えていますか?