温馨提示×

linux c++配置如何设路径

小樊
42
2026-09-29 05:39:29
栏目: 编程语言

在 Linux 下用 C++ 配置头文件 / 库文件路径,常见有几种方式,按使用场景给你总结一下:


一、编译时指定路径(g++ / gcc)

1️⃣ 指定头文件路径(Include Path)

g++ main.cpp -I/path/to/include
  • -I 后面跟 头文件目录
  • 可多次使用:
g++ main.cpp -I./include -I/usr/local/mylib/include

2️⃣ 指定库文件路径(Library Path)

g++ main.cpp -L/path/to/lib
  • -L 指定 库文件目录

3️⃣ 链接具体库

g++ main.cpp -L/path/to/lib -lmylib
  • -l 后面是库名(去掉 lib 和 .so / .a)

✅ 示例:

g++ main.cpp \
  -I/opt/opencv/include \
  -L/opt/opencv/lib \
  -lopencv_core

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

编译通过但运行报错:

error while loading shared libraries

方法 1:环境变量(临时)

export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH
./a.out

方法 2:写入配置文件(永久)

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

写入:

/path/to/lib

然后执行:

sudo ldconfig

三、使用 pkg-config(推荐)

很多库支持:

g++ main.cpp $(pkg-config --cflags --libs opencv4)

查看路径:

pkg-config --cflags opencv4
pkg-config --libs opencv4

四、CMake 配置路径(工程化推荐)

CMakeLists.txt 示例

include_directories(/path/to/include)
link_directories(/path/to/lib)

add_executable(app main.cpp)
target_link_libraries(app mylib)

或更现代:

find_path(MYLIB_INCLUDE_DIR mylib.h PATHS /path/to/include)
find_library(MYLIB_LIB mylib PATHS /path/to/lib)

target_include_directories(app PRIVATE ${MYLIB_INCLUDE_DIR})
target_link_libraries(app ${MYLIB_LIB})

五、常见错误排查

❌ -I 写成了 -L
❌ 运行时没设 LD_LIBRARY_PATH
❌ 库是 32 位 / 64 位不匹配
❌ 忘了 sudo ldconfig


如果你愿意,可以告诉我:

  • 用的是 g++ / CMake / Makefile?
  • 是哪个库(OpenCV / Boost / 自写库)?

我可以直接给你一份可用命令或 CMake 配置。

0 踩