在 Linux 下配置 C++ 的“路径”,通常主要指 编译器路径、库路径、头文件路径、可执行文件路径 这几类。不同场景配置方式不同,下面按 最常见情况 给你一个完整说明。
g++ --version
clang++ --version
如果没有:
sudo apt update
sudo apt install g++ # Ubuntu / Debian
sudo yum install gcc-c++ # CentOS / RHEL
你自己写的 C++ 程序或工具不在 /usr/bin,想直接运行。
假设你有:
/home/user/cpp/bin/myapp
export PATH=/home/user/cpp/bin:$PATH
vim ~/.bashrc
添加:
export PATH=/home/user/cpp/bin:$PATH
生效:
source ~/.bashrc
g++ main.cpp -I/home/user/mylib/include
export CPLUS_INCLUDE_PATH=/home/user/mylib/include:$CPLUS_INCLUDE_PATH
g++ main.cpp -L/home/user/mylib/lib -lmylib
export LIBRARY_PATH=/home/user/mylib/lib:$LIBRARY_PATH
⚠️ 编译通过 ≠ 运行通过
export LD_LIBRARY_PATH=/home/user/mylib/lib:$LD_LIBRARY_PATH
vim ~/.bashrc
添加:
export LD_LIBRARY_PATH=/home/user/mylib/lib:$LD_LIBRARY_PATH
sudo vim /etc/ld.so.conf.d/mylib.conf
写入:
/home/user/mylib/lib
然后执行:
sudo ldconfig
include_directories(/home/user/mylib/include)
link_directories(/home/user/mylib/lib)
add_executable(myapp main.cpp)
target_link_libraries(myapp mylib)
g++ main.cpp $(pkg-config --cflags --libs opencv)
export PKG_CONFIG_PATH=/home/user/mylib/lib/pkgconfig:$PKG_CONFIG_PATH
fatal error: mylib.h: No such file or directory
✅ 解决:
-I/path/to/include
cannot find -lmylib
✅ 解决:
-L/path/to/lib
error while loading shared libraries
✅ 解决:
ldconfig 或 LD_LIBRARY_PATH
| 类型 | 变量 / 参数 |
|---|---|
| 可执行文件 | PATH |
| 头文件 | -I / CPLUS_INCLUDE_PATH |
| 库文件(编译) | -L / LIBRARY_PATH |
| 库文件(运行) | LD_LIBRARY_PATH / ldconfig |
如果你愿意,我可以:
你现在是在 编译自己的程序 还是 配置第三方库?