在 CentOS 下出现 C++ 路径错误,通常不是“改一个地方”就能解决,而是要看具体是哪一类路径问题。下面按最常见场景给你一套排查和解决办法。
典型报错:
fatal error: xxx.h: No such file or directory
✅ 解决方法:
sudo yum install -y xxx-devel
例如:
sudo yum install -y gcc gcc-c++ openssl-devel
g++ main.cpp -I/usr/local/include
典型报错:
ld: cannot find -lxxx
✅ 解决方法:
sudo yum install -y xxx-devel
g++ main.cpp -L/usr/local/lib -lxxx
echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/local.conf
sudo ldconfig
典型报错:
error while loading shared libraries: libxxx.so.1: cannot open shared object file
✅ 解决方法:
LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
./your_program
或永久生效:
echo 'export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
典型报错:
g++: command not found
✅ 解决方法:
sudo yum install -y gcc gcc-c++
查看路径:
which g++
CXX = g++
CXXFLAGS = -I/usr/local/include
LDFLAGS = -L/usr/local/lib -lxxx
include_directories(/usr/local/include)
link_directories(/usr/local/lib)
target_link_libraries(app xxx)
CentOS 7 默认:
/usr/include/usr/lib64如果你装了新版本 gcc(如 gcc 11),路径通常是:
/opt/rh/devtoolset-11/root/usr/bin/g++
✅ 启用方式:
scl enable devtoolset-11 bash
gcc --version
g++ --version
echo $LD_LIBRARY_PATH
ldconfig -p | grep libxxx
如果你愿意,可以直接把 完整报错信息 或 编译命令 发出来,例如:
g++ main.cpp -o app
我可以精确告诉你要改哪一行、加什么参数、装什么包 ✅