在 Linux 下使用 C++ 配置路径(头文件路径、库路径、可执行文件路径等),通常分为 编译期配置 和 运行期配置 两大类。下面按常见场景系统说明。
g++ / clang++g++ -I /path/to/include main.cpp
多个路径:
g++ -I /path/to/include1 -I /path/to/include2 main.cpp
include_directories(/path/to/include)
或现代写法:
target_include_directories(my_target PRIVATE /path/to/include)
g++ -L /path/to/lib main.cpp -lmylib
link_directories(/path/to/lib)
或更好方式:
target_link_libraries(my_target PRIVATE mylib)
g++ main.cpp -L /path/to/lib -lmylib
对应:
libmylib.so 或 libmylib.a
export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH
echo 'export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
sudo vim /etc/ld.so.conf.d/mylib.conf
写入:
/path/to/lib
然后执行:
sudo ldconfig
export PATH=/path/to/bin:$PATH
echo 'export PATH=/path/to/bin:$PATH' >> ~/.bashrc
如果库支持 pkg-config:
g++ main.cpp $(pkg-config --cflags --libs opencv)
查看路径:
pkg-config --cflags opencv
pkg-config --libs opencv
cmake_minimum_required(VERSION 3.10)
project(demo)
include_directories(/opt/mylib/include)
link_directories(/opt/mylib/lib)
add_executable(demo main.cpp)
target_link_libraries(demo mylib)
fatal error: xxx.h: No such file or directory
✅ 检查 -I 或 include_directories
cannot find -lxxx
✅ 检查:
-L 路径.so 还是 .aerror while loading shared libraries
✅ 检查:
ldd ./your_program
| 目的 | 方法 |
|---|---|
| 头文件路径 | -I / include_directories |
| 库文件路径 | -L / link_directories |
| 链接库 | -lxxx |
| 运行库路径 | LD_LIBRARY_PATH / ldconfig |
| 可执行路径 | PATH |
| 专业管理 | pkg-config / CMake |
如果你有 具体场景(如 OpenCV、CUDA、自定义 SDK、交叉编译、ROS、嵌入式 Linux),可以告诉我,我可以给你针对性的配置示例。