C

头文件和库文件的搜索路径

kokomi
2025-03-02 / 0 评论 / 1 阅读 / 正在检测是否收录...

一个程序能正确编译、链接、运行需要满足3个条件:预处理时能找到头文件,连接时能找到库(静态库或动态库),运行时能找到库

1、头文件的搜索路径

头文件通常以.h结尾,有两种写法:双引号尖括号(当然也可以直接写绝对路径,那就不会有查找路径的问题了),如下:

#include <iostream>
#include "demo.h"

它们查找路径的顺序是有区别的,双引号形式会查找当前路径,而尖括号形式不会,具体查找顺序为:

  • 当前目录(仅双引号形式)
  • 编译时指定的路径(使用 CMake 编译时,target_include_directories 配置的搜索路径 > include_directories 配置的搜索路径;使用gcc编译时,gcc -I 指定的搜索路径)
  • 系统环境变量CPLUS_INCLUDE_PATH( C++ 中) 或 C_INCLUDE_PATH ( C 中)指定的目录
  • gcc默认目录:gcc的默认目录可通过echo | g++ -v -x c++ -E -查看
~: echo | g++ -v -x c++ -E -
...
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/11
 /usr/include/x86_64-linux-gnu/c++/11
 /usr/include/c++/11/backward
 /usr/lib/gcc/x86_64-linux-gnu/11/include
 /usr/local/include
 /usr/include/x86_64-linux-gnu
 /usr/include
...

例如:这里会从 /usr/include/c++/11目录依次找到 /usr/include目录

库文件的搜索路径

0

评论 (0)

取消