ライブラリへのパスをg ++に含める方法


96

メイクファイルに追加のライブラリへのパスを含めようとしていますが、コンパイラでそのパスを使用する方法を理解できません。これまでのところ:

g++ -g -Wall testing.cpp fileparameters.cpp main.cpp -o test

へのパスを含めたい

/data[...]/lib

Testing.cppにはそのライブラリのファイルが含まれているためです。また、私はLinuxマシンを使用しています。

編集:ライブラリへのパスではありません。含まれていたファイルのみ。私の悪い。


回答:


168

(バイナリ)ライブラリを検索するディレクトリを指定するには、次のコマンドを使用します-L

-L/data[...]/lib

実際のライブラリ名を指定するには、次を使用します-l

-lfoo  # (links libfoo.a or libfoo.so)

(ライブラリとは異なり)インクルードファイルを検索するディレクトリを指定するには、次を使用します-I

-I/data[...]/lib

だからあなたが欲しいのは

g++ -g -Wall -I/data[...]/lib testing.cpp fileparameters.cpp main.cpp -o test

4
基本的に、必要になる前のどこか。-I例えば、た.cppファイル名の前に来る必要があります。
アーネストフリードマンヒル、

1
ライブラリーをシステム変数に追加するように、コンパイラーがそれを理解できるようにすることは可能ですか?
Fred

5
@Fred、はい、G ++は、理解し、環境変数の全体の束パス、ライブラリパスなどを含める制御するために使用することができます
アーネスト・フリードマン・ヒル

1
-Lと-I(小文字のLではなく大文字のi)の違いは何ですか?
Youda008

1
@ Youda008 Capital ell:ライブラリの検索パス。大文字の目:インクルードファイルの検索パス。小さなエル:リンクするライブラリの名前。
アーネストフリードマンヒル

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.