在 Ubuntu 上设置 C++ 路径,通常指的是下面几种情况之一。你可以对照看看你属于哪一种,我按常见场景给你说明。
用于告诉编译器去哪里找 .h 文件。
g++ main.cpp -I /home/user/mylib/include
如果你有多个路径:
g++ main.cpp -I /path/to/include1 -I /path/to/include2
用于链接 .so 或 .a 库文件。
g++ main.cpp -L /home/user/mylib/lib -lmylib
说明:
-L:库文件所在目录-l:库名(去掉 lib 前缀和 .so / .a 后缀)编译通过但运行时报:
error while loading shared libraries
说明运行时找不到 .so
export LD_LIBRARY_PATH=/home/user/mylib/lib:$LD_LIBRARY_PATH
写入 ~/.bashrc:
export LD_LIBRARY_PATH=/home/user/mylib/lib:$LD_LIBRARY_PATH
然后:
source ~/.bashrc
sudo vim /etc/ld.so.conf.d/mylib.conf
写入:
/home/user/mylib/lib
然后:
sudo ldconfig
include_directories(/path/to/include)
link_directories(/path/to/lib)
target_link_libraries(myapp mylib)
编辑 .vscode/c_cpp_properties.json:
{
"includePath": [
"/usr/include",
"/usr/local/include",
"/home/user/mylib/include"
],
"compilerPath": "/usr/bin/g++"
}
echo | g++ -v -x c++ -E -
ldconfig -v
❌ 只设置 -I 不设置 -L
❌ 编译通过但忘了 LD_LIBRARY_PATH
❌ 把库路径和头文件路径混用
你可以直接告诉我:
我可以一步一步帮你配好 ✅