私はC/C++を初めて使いました。この簡単な質問があります。私はコンパイルのコマンドを入力するときにライブラリをリンクする必要があるかどうかわかりません。私が正しければ、パラメータ-lの後にインクルードしたいライブラリの名前を追加します。しかし、例えばC言語の数学ライブラリで作業している場合、私のプログラムをコンパイルするために-lathのようなものを追加していますか?または、どこか読んでいるときにCの外部ライブラリを使用しているときだけ必要ですか? C外部ライブラリとは何ですか?誰も私にこれを説明できますか?ありがとうございました。いつC言語でライブラリをリンクする必要がありますか?
0
A
答えて
4
ほとんどのコンパイラは、リンク時にデフォルトで言語の標準ライブラリを含みます。 gccにはC標準ライブラリ(libc)が含まれ、g ++にはC++標準ライブラリ(libC++)が追加されます。いくつかのシステムでは、数学には-lm
、リアルタイム拡張には-lrt
を追加しているかもしれませんが、それらのライブラリはしばしばコア言語外の機能を追加します。
1
数学は標準ライブラリの一部なので、リンクする必要はありません。他のすべてはリンクされるべきです。
(編集:以下のコメントをチェックしてください)
たとえば、コードprintf、strcmp、およびpthread_createで使用する場合、printfとstrcmpには何もリンクする必要はありません。ちょうど右のヘッダーを含めると、あなたは大丈夫です。しかし、pthread_createは標準ライブラリの一部ではないので、それにリンクする必要があります。-lpthread。
関連する問題
- 1. std :: regex - リンクが必要なライブラリがありますか?
- 2. Objective-C:プライベートメソッドを宣言する必要がありますか?
- 3. Objective-CライブラリをC言語で使用する方法はありますか?
- 4. よりよいテンプレート言語が必要
- 5. なぜHTMLハイパーリンクに言語を指定する必要がありますか?
- 6. System.Scripting.Actionsライブラリを見つける必要があります - DynamicObject
- 7. ライブラリでモデルを使用する必要がありますか?
- 8. 通常、pkg-configにリンクされているautomakeのライブラリをリンクする必要がありますか?
- 9. 新しい言語(C言語)を学ぶのに役立つ新しいブログが必要です
- 10. サイトの言語はどこに設定する必要がありますか?
- 11. web.configでhttpsを宣言する必要がありますか?
- 12. app.yamlでindex.htmlを宣言する必要がありますか?
- 13. いつ.NET Frameworkデータ型と言語データ型を使用する必要がありますか?
- 14. extern "C"はC言語で効果がありますか?
- 15. sqlite3をプレーンなオブジェクトコードまたはC++アプリケーションの静的ライブラリとしてリンクする必要がありますか?
- 16. PythonアプリケーションにCライブラリをバンドルする必要がありますか?
- 17. Obj-C、いくつかのテーブルビューがあり、すぐにデータが見つからないと言うコードを追加する必要がありますか?
- 18. boost.signals2ライブラリをビルドする必要がありますか?
- 19. C++ランタイムを必要としないSQLite用のC#ライブラリはありますか?
- 20. C++ライブラリのAPIでサードパーティの型を公開する必要があります
- 21. URLに言語を設定する必要はありますか? [Codeigniter]
- 22. スカラー変数を宣言する必要がありますか?
- 23. ASP.NETでは2つの言語が必要ですが、PHP/Rubyには1つのみが必要ですか?
- 24. レールプロダクションアプリの別の言語でコードを書く必要はありますか?
- 25. LINQ(クエリ言語)のアップグレードパスについて心配する必要があります
- 26. フロートをいつクリアする必要がありますか?
- 27. いつオブジェクトをリリースする必要がありますか?
- 28. ブロックをいつコピーする必要がありますか?
- 29. Cで関数を宣言する必要はありますか?
- 30. Objective-Cで+ allocをオーバーライドする必要がありますか?
標準の数学関数を使用するには、数学ライブラリにリンクする必要があることがあります。 –
さて、正しい。私はmath.hの関数について話していると思っていましたが、これは私が知っている限り標準ライブラリの一部です。 –
Solaris(たとえば)では、math.h関数はlibmを明示的にリンクする必要があります。 – Joe