2016-03-23 43 views
0

私はこれを尋ねる場所がわからないので、スタックオーバーフローが最適な場所でないと私は言い訳をします。LinuxとMac OS Xの.oファイル

gccを使ってLinux上で生成された.oファイルとMac OS X上の.oファイルの間に相違点があるかどうかは私の質問です。 Macで、またはその逆ですか?

+0

は、それらを生成するために使用されるコンパイラに依存します。両方ともgccの場合は、同じものにする必要があります。 –

答えて

2

これらは全く異なっています。 OS XはMach-Oオブジェクトファイル形式を使用します。 LinuxはELFオブジェクトファイル形式を使用します。彼らは全く同じ目的を果たしますが、まったく異なる方法で行います。

+0

同じフォーマットであっても、オペレーティングシステムのABIが異なるため、必ずしも互換性がありません。 SVR4もELF形式を使用しますが、LinuxではSVR4オブジェクトファイルを使用できません。 – Barmar

0

.oで終わるファイルはオブジェクトファイルです。コンパイラは、各ソースファイルを結合する前に、最終的な実行可能ファイルにオブジェクトファイルを作成します。 Mac OSはBSDコードベースに基づいていますが、LinuxはUnixライクなシステムの独立した開発です。つまり、これらのシステムは似ていますが、バイナリ互換ではありません。使用するOS上でコードをコンパイルするにはバイナリコードの互換性

読む: https://en.wikipedia.org/wiki/Binary_code_compatibility