如何将库加入项目依赖
对于在 C++中使用库的问题,主要是需要解决如何搜索到库的头文件以及动态链接库文件所在位置。
头文件的搜索
对于头文件,C++编译器有两种搜索顺序。
当使用#include "头文件名"
时,编译器会按照以下顺序进行搜索。
- 文件所在当前目录。
- 编译器使用
-I
指定的目录。 - gcc 的环境变量
CPLUS_INCLUDE_PATH
中包含的目录。 - gcc 内定的目录,包括
/usr/include
、/usr/local/include
等。
当使用#include <头文件名>
时,会按照以下顺序搜索。
- 编译器 gcc 使用
-I
指定的目录。 - gcc 的环境变量
CPLUS_INCLUDE_PATH
中包含的目录。 - gcc 内定的目录,包括
/usr/include
、/usr/local/include
等。
静态库文件的搜索
静态库文件会按照以下顺序搜索。
- 编译器 gcc 使用
-L
指定的目录。 - gcc 的环境变量
LIBRARY_PATH
中包含的目录。 - gcc 内定目录,包括
/lib
、/usr/lib
、/usr/local/lib
等。
动态库文件的搜索
动态库文件会按照以下顺序搜索。
- 通过编译器 gcc 参数
-Wl,-rpath
指定的动态库路径。 - 环境变量
LD_LIBRARY_PATH
中包含的目录。 - 配置文件
/etc/ld.so.conf
中指定的搜索路径。 - 默认动态库路径
/lib
,/usr/lib
。