温馨提示×

Linux C++路径如何设

小樊
33
2026-07-17 05:18:53
栏目: 编程语言

在 Linux 下使用 C/C++ 时,“路径”通常指 头文件路径、库文件路径、可执行文件路径 等。不同场景设置方式不同,下面按最常见的几种情况给你一个速查总结


一、编译时的路径(最常见)

1️⃣ 设置 头文件搜索路径

-I /path/to/include

示例:

g++ main.cpp -I /usr/local/include/mylib

编译器会在 /path/to/include 中查找 #include "xxx.h"


2️⃣ 设置 库文件搜索路径

-L /path/to/lib

示例:

g++ main.cpp -L /usr/local/lib

3️⃣ 链接指定库

-lxxx

示例:

g++ main.cpp -L /usr/local/lib -lmylib

对应:

libmylib.so
libmylib.a

二、运行时库路径(非常重要)

程序运行时动态库找不到,常见报错:

error while loading shared libraries: libxxx.so

方法 1:临时设置(推荐调试用)

export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH

方法 2:写入环境变量(永久)

# ~/.bashrc 或 ~/.zshrc
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

然后:

source ~/.bashrc

方法 3:系统级(推荐生产环境)

sudo vim /etc/ld.so.conf.d/mylib.conf

写入:

/usr/local/lib

然后执行:

sudo ldconfig

三、可执行程序路径

1️⃣ 把程序放到系统路径

sudo cp a.out /usr/local/bin/

2️⃣ 或加入 PATH

export PATH=/your/path:$PATH

四、CMake 中的路径设置(推荐)

头文件路径

include_directories(/path/to/include)

库路径

link_directories(/path/to/lib)

链接库

target_link_libraries(app mylib)

五、Makefile 示例

CXX = g++
CXXFLAGS = -I /usr/local/include
LDFLAGS = -L /usr/local/lib -lmylib

app: main.cpp
	$(CXX) main.cpp -o app $(CXXFLAGS) $(LDFLAGS)

六、常见路径速查表

类型 路径
系统头文件 /usr/include
第三方头文件 /usr/local/include
系统库 /usr/lib
第三方库 /usr/local/lib
可执行程序 /usr/local/bin

七、快速排错命令

# 查看程序依赖的库
ldd ./app

# 查看库搜索路径
gcc -print-search-dirs

# 查看 include 路径
echo | g++ -v -x c++ -E -

如果你能具体说一下是 编译报错、运行报错,还是 CMake / Makefile 配置,我可以给你更精确的示例。

0