2017-01-08 9 views
-1

C++コンパイルでリンクフェーズを実行して実行可能ファイルを作成すると、いくつかのライブラリをリンクするのに-lフラグを使用する必要がよくあります。たとえば、C++コンパイルでライブラリの登録名を調べる方法

-lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_videoio -lsigc-2.0 -lglibmm-2.4 -lglib-2.0 -lstdc++ -lncurses -lflycapture 

私の質問は、まずこれらのライブラリの名前をどのように知っていますか? たとえば、opencv/highgui.hライブラリを使用する場合、の代わりにopencv_highguiという名前をどうやって知っていますか?どのライブラリがのLinuxシステムに登録されているかを知るために使用できるコマンドはありますか?ありがとう!

+1

これらは登録されていません。それらはあなたのライブラリパスによって定義されたディレクトリにあります。それらの場所にファイルをリストするだけでよいのです。そしてあなたはライブラリを使用しているので名前を知っていますし、ドキュメントはあなたが使っているものを言います。 –

+0

どのライブラリをリンクする必要があるかを確認する方法は? – DyZ

+0

質問を編集しました。混乱をおかけして申し訳ありません。 –

答えて

0

使用しようとしている関数が "標準"ライブラリにない場合、欠落している関数名を報告するリンカエラーが発生します。この機能のマニュアルページ(例:cryptの場合はman crypt)を読んでください。図書館の名前は通常、ページに記載されます:

-lcryptとリンクします。

関連する問題