2

どのコンピュータでも使用できるオブジェクト ファイルを作成しようとしています。だから私がしたことは、一連の関数を作成し、.c ファイルに配置することでした。myfile.o を生成する gcc -c myfile.c を使用しました。(私は Windows XP を実行しており、DevC++ から gcc を入手しました) 次に、オブジェクト ファイルを使用する別のプログラムを作成します。

.o ファイルをコピーして別の PC で使用する場合を除いて、すべて問題ないようです。オブジェクトファイルを使用するファイルをコピーし、コンパイルして実行すると、エラーを通知するウィンドウが表示され、エラーレポートを送信したい場合にのみ表示されます。

別の PC でオブジェクト ファイルの .c ファイルを再コンパイルしてプログラムを再実行すると、動作するようです。

私が理解できないのは、あるマシンで .o ファイルを一度コンパイルし、それを別のマシンにコピーして、オブジェクト ファイルを再コンパイルせずに同じオブジェクト ファイルを使用するプログラムを作成できない理由です。

ありがとう!

4

2 に答える 2

3

これは、異なる C ライブラリを使用していることが原因である可能性が最も高いです。すべてのマシンで、同じパッケージからインストールされたまったく同じバージョンの gcc を使用するようにしてください。

したがって、DevC++ の gcc バージョンを使用し、MinGW などの他の gcc パッケージと混合しないでください。

于 2009-10-25T15:40:46.520 に答える
1

オブジェクト コードを移動するための共有ライブラリの作成を検討してみませんか? (.so または .dll)

于 2009-10-25T15:36:51.193 に答える