3

オプションを指定して GCC リンカを呼び出すと、-nostdlib標準ライブラリの手動/明示的な付録が上書きされますか?

GCC は MinGW の 4.8.1 です。

例:

gcc -nostdlib [MyObjectsAndLibraries] -lmsvcrt -o Outfile

は標準ライブラリなのでlibmsvcrt、リンク処理に追加されますか、それとも無視されますか? これに関する信頼できるデータを見つけることができません。これが、何らかの情報源にも感謝する理由です。

4

2 に答える 2

6

このコンテキストでは、「標準ライブラリ」とは、gccデフォルトで暗黙的にリンクするライブラリを意味します。コマンド ラインで明示的に指定されたライブラリは、常にリンクされます。実際、 http: //gcc.gnu.org/onlinedocs/gcc-4.8.2/gcc/Link-Options.html#Link-Optionsgccのドキュメントでは、自分が何をしているのか本当にわからない限り、追加する必要があることさえ指摘しています。を使用する場合は明示的に指定します。これは、コンパイラが定義されているビルトインに依存する可能性があるためです。-lgcc-nostdlib

つまり、-nostdlib または -nodefaultlibs を指定する場合、通常は -lgcc も指定する必要があります。これにより、内部 GCC ライブラリ サブルーチンへの未解決の参照がないことが保証されます。

于 2013-11-06T16:14:58.527 に答える