0

私は C/C++ が初めてで、この簡単な質問があります。コンパイルのコマンドを入力するときに、いつライブラリをリンクする必要があるかわかりません。私が正しければ、パラメーター -l の後に、組み込みたいライブラリーの名前を追加します。しかし、たとえば C の数学ライブラリを使用している場合、プログラムをコンパイルするために -lmath などを追加する必要がありますか? または、どこかで読んだように、C 外部ライブラリを使用している場合にのみ必要ですか? C 外部ライブラリとは 誰か私にこれを説明してもらえますか? ありがとうございました。

4

2 に答える 2

4

ほとんどのコンパイラには、リンク時にデフォルトで言語の標準ライブラリが含まれます。gcc には C 標準ライブラリ (libc) が含まれ、g++ には c++ 標準ライブラリ (libc++) が追加されます。-lm一部のシステムでは、数学や-lrtリアルタイムの拡張機能を追加していることに気付くかもしれませんが、これらのライブラリはコア言語の外に機能を追加することがよくあります (ただし、非常に一般的に使用される機能もあります)。

于 2012-05-08T12:03:06.920 に答える
1

Math は標準ライブラリの一部であるため、リンクする必要はありません。それ以外はすべてリンクする必要があります。(編集:常に正しいとは限りません-以下のコメントを確認してください)

たとえば、コードで printf、strcmp、および pthread_create を使用する場合、printf と strcmp をリンクする必要はありません。適切なヘッダーを含めるだけで問題ありません。ただし、pthread_create は標準ライブラリの一部ではないため、リンクする必要があります - -lpthread.

于 2012-05-08T12:04:50.240 に答える