温馨提示×

ubuntu下c++怎么找头文件

小樊
40
2026-09-11 08:22:47
栏目: 编程语言

在 Ubuntu 下用 C++ 开发时,“找头文件”通常分几种情况:
系统头文件在哪、第三方库头文件在哪、编译时怎么让编译器找到、以及运行时/查看源码时怎么定位。下面按实用场景说明。


一、系统自带 C/C++ 头文件在哪

最常见的位置:

/usr/include
/usr/include/c++        # C++ 标准库头文件
/usr/include/x86_64-linux-gnu

例如:

ls /usr/include/stdio.h
ls /usr/include/c++/11

查看 g++ 默认搜索路径:

g++ -E -x c++ - -v < /dev/null

你会看到类似:

#include <...> search starts here:
 /usr/include/c++/11
 /usr/include/x86_64-linux-gnu/c++/11
 /usr/include

二、找“某个头文件在哪个包里”(非常常用)

1️⃣ 已知头文件名,比如 opencv2/opencv.hpp

apt-file search opencv2/opencv.hpp

如果没装 apt-file:

sudo apt update
sudo apt install apt-file
sudo apt-file update

2️⃣ 已安装某个 dev 包,看它装了哪些头文件

dpkg -L libssl-dev | grep '\.h$'

三、第三方库头文件一般在哪

通过 apt 安装的 -dev 包:

/usr/include
/usr/include/<库名>

例如:

/usr/include/sqlite3.h
/usr/include/opencv4/opencv2

手动编译安装的库(cmake / make install):

/usr/local/include
/usr/local/include/<库名>

四、编译时怎么“告诉编译器”头文件位置

1️⃣ 指定头文件目录(-I)

g++ main.cpp -I/usr/local/include/mylib -o main

2️⃣ 使用 pkg-config(推荐)

pkg-config --cflags opencv4

编译:

g++ main.cpp $(pkg-config --cflags --libs opencv4) -o main

五、用代码/命令“反查”头文件真实路径

1️⃣ 预处理展开 include

g++ -E main.cpp | less

2️⃣ 查看某个 include 的最终路径

#include <iostream>
echo '#include <iostream>' | g++ -E -x c++ - | grep iostream

六、想“看头文件源码”怎么办

直接打开:

sudo apt install vim
vim /usr/include/c++/11/iostream

或 VS Code:

code /usr/include/c++/11

七、常见坑提醒

✅ 只有 -dev 包才有头文件

sudo apt install libxxx-dev

✅ CMake 项目找不到头文件

find_package(XXX REQUIRED)
target_include_directories(app PRIVATE ${XXX_INCLUDE_DIRS})

如果你有具体场景,比如:

  • 找 某个库的头文件
  • CMake 找不到 include
  • 交叉编译
  • 自己写库怎么暴露头文件

可以直接说,我可以给你更针对性的命令。

0 踩