如何将库加入项目依赖

对于在 C++中使用库的问题,主要是需要解决如何搜索到库的头文件以及动态链接库文件所在位置。

Tip

实际上只要在代码中引用了指定目录中或者库中的头文件,那么在编译的时候就会自动的加入相应的库。

头文件的搜索

对于头文件,C++编译器有两种搜索顺序。

当使用#include "头文件名"时,编译器会按照以下顺序进行搜索。

  1. 文件所在当前目录。
  2. 编译器使用-I指定的目录。
  3. gcc 的环境变量CPLUS_INCLUDE_PATH中包含的目录。
  4. gcc 内定的目录,包括/usr/include/usr/local/include等。

当使用#include <头文件名>时,会按照以下顺序搜索。

  1. 编译器 gcc 使用-I指定的目录。
  2. gcc 的环境变量CPLUS_INCLUDE_PATH中包含的目录。
  3. gcc 内定的目录,包括/usr/include/usr/local/include等。

静态库文件的搜索

静态库文件会按照以下顺序搜索。

  1. 编译器 gcc 使用-L指定的目录。
  2. gcc 的环境变量LIBRARY_PATH中包含的目录。
  3. gcc 内定目录,包括/lib/usr/lib/usr/local/lib等。

动态库文件的搜索

动态库文件会按照以下顺序搜索。

  1. 通过编译器 gcc 参数-Wl,-rpath指定的动态库路径。
  2. 环境变量LD_LIBRARY_PATH中包含的目录。
  3. 配置文件/etc/ld.so.conf中指定的搜索路径。
  4. 默认动态库路径/lib/usr/lib