のMinGWを使用して、空のCプログラムをコンパイルする場合、アセンブリ出力はラインが含まれてい何ライブラリのgccアセンブリ出力に__main関数の参照を持っている
call __main
何ライブラリこれはからですか?私はmsvcrt.dll
とのリンク(ld
を使用したリンク)を期待していましたが、そうでなかったので、別の場所で定義する必要があります。
他の場所でも同じ質問がありますが、実際にはこの質問の回答が含まれていないので、重複としてマークする前に確認してください。
のMinGWを使用して、空のCプログラムをコンパイルする場合、アセンブリ出力はラインが含まれてい何ライブラリのgccアセンブリ出力に__main関数の参照を持っている
call __main
何ライブラリこれはからですか?私はmsvcrt.dll
とのリンク(ld
を使用したリンク)を期待していましたが、そうでなかったので、別の場所で定義する必要があります。
他の場所でも同じ質問がありますが、実際にはこの質問の回答が含まれていないので、重複としてマークする前に確認してください。
__main
は、MinGWコンパイラに付属のlibgcc
ライブラリで提供する必要があります。
あなたではなく、直接ld
を呼び出すよりも、あなたのプログラムをリンクする(つまり、gcc
コマンドラインツールです)コンパイラー・ドライバーを使用する場合は、このライブラリは自動的にリンクに追加する必要があります。コンパイラドライバを使用してリンクすることは、これといくつかの理由で推奨されています。
MinGWのバージョンと組み込みGCCのバージョンによっては、libgcc
またはその一部がDLLである可能性があります.MinGWコンパイル済みの実行可能ファイルを出荷する場合はバンドルする必要があります。
私は確かに分かりません(これはコメントであり、答えではありません)が、どちらもMinGWコンパイラと共に提供されるべき 'libgcc'または' libgcc_s'になければなりません。 MinGW環境でどのような拡張機能があるのかもわかりません。 'ld'を直接呼び出すのではなく、リンクするためにコンパイラドライバを使用する場合は、これらのライブラリを自動的に取得する必要があります。これは他のいくつかの理由で良い考えです。 – zwol
@zwolそれは働いた!ありがとう、私が受け入れるかもしれない答えを投稿すること自由に感じなさい – rtpax