在 Ubuntu 下用 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
opencv2/opencv.hppapt-file search opencv2/opencv.hpp
如果没装 apt-file:
sudo apt update
sudo apt install apt-file
sudo apt-file update
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/<库名>
g++ main.cpp -I/usr/local/include/mylib -o main
pkg-config --cflags opencv4
编译:
g++ main.cpp $(pkg-config --cflags --libs opencv4) -o main
g++ -E main.cpp | less
#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})
如果你有具体场景,比如:
可以直接说,我可以给你更针对性的命令。