最初に、この質問は学校/宿題に関連していることを記しておきます。
コンピューター CP1 と CP2 が同じオペレーティング システムと機械語を共有しているとします。C プログラムが CP1 でコンパイルされている場合、CP2 に移動するには、ソース コードを転送して CP2 で再コンパイルするか、単にオブジェクト ファイルを転送する必要があります。
私の直感的な答えは、オブジェクト ファイルで十分だということです。C コードはコンパイラによってアセンブリに変換され、アセンブラによってマシン コードにアセンブルされます。アーキテクチャは同じマシン コードとオペレーティング システムを共有しているため、問題はありません。
しかし、考えれば考えるほど混乱してきます。
私の質問は次のとおりです。
a)実行可能ファイルではなくオブジェクトファイルを参照しているため、リンクがないと想定しています。CP2 でリンクするときに問題が発生することはありますか?
b) コードが CP1 で C11 標準を使用し、CP2 の唯一のコンパイラが C99 であった場合は問題になりますか? コードがコンパイル/アセンブルされたら、これは無関係だと思います。
c) 質問は、共有/動的リンク ライブラリを指定していません。したがって、これは、プログラムが .dll/.so/ .dylib ファイルに依存していない場合にのみ実際に機能します。そうでない場合、これらは CP2 でも必要になります。
非常に多くの落とし穴があるように感じます。質問がどれほど漠然としているのかを考えると、単純に再コンパイルする方が安全だと感じています。
ハーフ!