2011-05-26 24 views
1

Solaris x86ライブラリをSolaris sparcサーバーからクロスコンパイルできるかどうか分かりますか?Solaris sparcからSolaris x86へのクロスコンパイル

ソースコードは主にC++(一部C)です。私はSolaris C++コンパイラCCを使用してコンパイルする必要があります。私はsparcとx86の間でいくつかのコンパイルフラグやリンクフラグが異なることを理解しています。私が使用したフラグが共通であることを確認するためのチェックをしました。

sparcでコンパイルされたライブラリをx86にコピーすることはできますか?あるいは、コンパイルやリンク時に特定のフラグを適用する必要がありますか?

おかげで、

答えて

1

日/ Oracle StudioのC++コンパイラはクロスコンパイルをサポートしていません。特別に構築されたgccのような、別のコンパイラを使う必要があります。

ライブラリをコピーするだけでは動作しません.SPARCとx86は非常に異なる命令セットであり、2つの命令のバイナリ互換性はありません。

+0

がそれを手に入れました。ありがとう。 – ygao

0

x86用のSPARC上でSolarisライブラリをクロスコンパイルできたとしても、x86コンパイラとライブラリをインストールするほうがはるかに簡単です。これらの図書館の相互依存関係はおそらく複雑であり、そのようなプロジェクトはおそらくうまくいかないでしょう。

スタジオソフトウェアをx86 Solarisにダウンロードしてインストールするだけで何が妨げられますか?

+0

こんにちはrchrd、あなたの答えをありがとう。 x86 Solaris上でライブラリをコンパイルしようとしています。アクセス権を要求し、x86 Solaris上でコンパイラをインストールすると、いくつかの官僚的な障壁を越える必要があります... – ygao

+0

ここに来る人には:どのような官僚的な障壁ですか? Solaris Studioは無料でダウンロードできます。開発のために使用しない限り、Solaris自体もそうです。あなたのWindowsワークステーションでVirtualBoxを起動し、それにSolarisをインストールして、Solaris X86開発ホストを用意してください! – peterh

0

Oracle Sun Studio C++コンパイラ(CC)には、さまざまなアーキテクチャのある- xarchオプションがあります。そこには:sparc、amd64、pentium_pro、様々な拡張/変更があります。コンパイルとリンクを別々のステップで実行する場合は、このフラグをコンパイラとリンカの両方に提供する必要があります。

ファイルコマンドでターゲットアーキテクチャを確認できます。例えば:

bash-3.2$ file /usr/bin/CC 
/usr/bin/CC: ELF 32-bit LSB executable 80386 Version 1 [FPU], dynamically linked, stripped 

、詳細については、CCマニュアルを参照してください:Sun Studio 11 C++ Man Page

+1

x86関連の--xarchをsparc上で、また相互に使用することはできません。受け入れられた答えを見てください。 – jlliagre

+0

これをチェックしたところ、このオプションは無視されました。ありがとうございました。 –

関連する問題