在 CentOS 上配置 C++ 路径,一般指的是下面几种情况之一。我按常见场景给你说明,你可以对照自己需要的部分看。
大多数 CentOS 默认没有安装 g++,先检查:
g++ --version
如果没有安装,执行:
sudo yum install -y gcc gcc-c++
安装完成后:
g++ --version
CentOS 下 g++ 默认会搜索:
/usr/include
/usr/local/include
一般不需要手动配置。
示例:
#include <iostream>
#include <vector>
如果你的头文件在 /opt/mylib/include:
g++ main.cpp -I/opt/mylib/include
如果有多个路径:
g++ main.cpp -I/opt/mylib/include -I/home/user/include
-L 指定库路径例如库文件在 /opt/mylib/lib:
g++ main.cpp -L/opt/mylib/lib -lmylib
编译时指定了 -L,运行时不一定能找到库。
export LD_LIBRARY_PATH=/opt/mylib/lib:$LD_LIBRARY_PATH
编辑:
~/.bashrc
添加:
export LD_LIBRARY_PATH=/opt/mylib/lib:$LD_LIBRARY_PATH
生效:
source ~/.bashrc
/etc/ld.so.conf(系统级)sudo vim /etc/ld.so.conf.d/mylib.conf
写入:
/opt/mylib/lib
然后执行:
sudo ldconfig
g++ main.cpp -std=c++17
常见选项:
| 标准 | 参数 |
|---|---|
| C++11 | -std=c++11 |
| C++14 | -std=c++14 |
| C++17 | -std=c++17 |
| C++20 | -std=c++20 |
如果你安装了多个 g++ 版本,可配置 PATH:
which g++
假设在 /opt/gcc/bin/g++:
export PATH=/opt/gcc/bin:$PATH
永久生效:
echo 'export PATH=/opt/gcc/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
CMakeLists.txt 示例:
cmake_minimum_required(VERSION 3.10)
project(MyProject)
set(CMAKE_CXX_STANDARD 17)
include_directories(/opt/mylib/include)
link_directories(/opt/mylib/lib)
add_executable(main main.cpp)
target_link_libraries(main mylib)
g++: command not found→ 没安装 gcc-c++
cannot find -lxxx→ 库路径没加 -L 或库名不对
error while loading shared libraries→ 没配置 LD_LIBRARY_PATH 或 ldconfig
| 需求 | 命令 |
|---|---|
| 安装 g++ | yum install gcc gcc-c++ |
| 指定头文件 | -I/path |
| 指定库路径 | -L/path |
| 链接库 | -lxxx |
| 运行时库 | LD_LIBRARY_PATH / ldconfig |
| C++ 标准 | -std=c++17 |
如果你愿意,可以告诉我:
我可以给你更精确的配置方案。