如何在G ++中包含库的路径


96

我试图在我的makefile中包含其他库的路径,但我不知道如何使编译器使用该路径。到目前为止,我有:

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

我想包括通往

/data[...]/lib

因为testing.cpp包含该库中的文件。另外,我在Linux机器上。

编辑:不是库的路径。仅用于包含的文件。我的错。


Answers:


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
是否可以使编译器弄清楚这一点,例如将库添加到系统变量中?
2013年

5
@Fred,是的,克++理解一大堆环境变量可用于控制包括路径,库路径等
欧内斯特弗里德曼-希尔

1
-L和-I(大写i,不是小写L)有什么区别?
Youda008

1
@ Youda008 Capital ell:库的搜索路径。大眼:包含文件的搜索路径。小写ell:要链接的库的名称。
欧内斯特·弗里德曼·希尔

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.