CIサーバー( http://ci.berboe.co.uk )でC++アプリケーションをコンパイルするためにgccを使用しています。コンパイルされるvpsには必要なx86-64アーキテクチャがあるためクロスコンパイルして、コンパイルされたプログラムをx86コンピューターで動作させる。
Gcc-multilibとg ++-multilib、および他の場所で提案されたいくつかの他のパッケージをインストールしましたが、コンパイルしようとするとエラーが発生します。それは:
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.a when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.so when searching for -lstdc++
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/libstdc++.a when searching for -lstdc++
/usr/bin/ld: cannot find -lstdc++
collect2: ld returned 1 exit status
完全なログはこちらから入手できます: http://ci.berboe.co.uk/job/MCServer%20Linux-x86/11/console
この問題を解決するための助けをいただければ幸いです。
編集:
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crt1.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crti.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-linux-gnu/4.4.5/crtbegin.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-linux-gnu/4.4.5/crtend.o' is incompatible with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file `/usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../../lib/crtn.o' is incompatible with i386 output
/usr/bin/ld: final link failed: Invalid operation
前の問題を修正した後、これを取得します。
ia32-libs
、これに移動: http://wiki.debian.org/Multiarch/HOWTO 他の人、あなたがそれを求めた場合、その詳細。LD_LIBRARY_PATH
envに追加してください。変数。 (ほぼ間違いなくexport LD_LIBRARY_PATH = ${LD_LIBRARY_PATH}:/lib32:/usr/lib32:/usr/lib/i386-linux-gnu
など)。LD_INCLUDE_PATH
環境変数に追加してください。以下を使用して、これらのライブラリを(もちろんインストールされたら)お気軽に探してください。
find / -iname "*libstdc++.so*" 2> /dev/null
たとえば、libstdc++.so
ライブラリの場合。 find
は、LD_LIBRARY_PATH
環境変数に追加できるパスを報告する必要があります。
I386 chrootを作成した方が良いでしょう。 mk-sbuild
(ubuntu-dev-tools内)およびschroot
は、これらの管理を非常に簡単にします。
mightが機能する2つのオプションがあります。
ia32-libs
を実行してSudo apt-get install ia32-libs
パッケージをインストールします。これは単なる予測であり、動作する場合と動作しない場合があります。このリンクが役立つ場合があります:- http://en.sfml-dev.org/forums/index.php?topic=6034.