在 Linux 下用 C++ 配置头文件 / 库文件路径,常见有几种方式,按使用场景给你总结一下:
g++ main.cpp -I/path/to/include
-I 后面跟 头文件目录g++ main.cpp -I./include -I/usr/local/mylib/include
g++ main.cpp -L/path/to/lib
-L 指定 库文件目录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
export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH
./a.out
sudo vim /etc/ld.so.conf.d/mylib.conf
写入:
/path/to/lib
然后执行:
sudo ldconfig
很多库支持:
g++ main.cpp $(pkg-config --cflags --libs opencv4)
查看路径:
pkg-config --cflags opencv4
pkg-config --libs opencv4
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
如果你愿意,可以告诉我:
我可以直接给你一份可用命令或 CMake 配置。