Ubuntu C++库文件哪里找
导读:Ubuntu 中 C++ 库文件与头文件的常见位置 头文件默认搜索路径(编译期) /usr/include/c++/<版本>/(如:/usr/include/c++/11) /usr/include/x86_64-linu...
Ubuntu 中 C++ 库文件与头文件的常见位置
-
头文件默认搜索路径(编译期)
- /usr/include/c++/< 版本> /(如:/usr/include/c++/11)
- /usr/include/x86_64-linux-gnu/c++/< 版本> /(多架构系统)
- /usr/include、/usr/local/include
- 使用命令查看完整搜索路径:
g++ -v -x c++ -E /dev/null(查看 “#include < …> search starts here” 段)。
-
库文件默认搜索与缓存路径(链接期与运行期)
- 系统库目录:/lib、/usr/lib、/usr/local/lib
- 多架构目录:/lib64、/usr/lib64(视架构而定)
- 用户级目录:~/.local/lib
- 配置与缓存:/etc/ld.so.conf、/etc/ld.so.conf.d/,缓存文件 /etc/ld.so.cache(用
sudo ldconfig更新) - 运行时动态库查找还会参考环境变量(见下文)。
-
典型安装布局(按来源区分)
- APT 安装的开发包(库名-dev):头文件在 /usr/include,库文件在 /usr/lib/x86_64-linux-gnu/(或 /usr/lib)。
- 源码编译安装(默认 prefix=/usr/local):头文件在 /usr/local/include,库文件在 /usr/local/lib。
如何快速定位某个库
- 查可执行文件依赖的动态库:
ldd ./your_app - 查系统库缓存中是否存在某库:
ldconfig -p | grep libname - 查看可执行文件是否内嵌了库搜索路径(RPATH/RUNPATH):
objdump -p ./your_app | grep -E 'RPATH|RUNPATH' - 查看编译器默认头文件与库路径:
g++ -v -x c++ -E /dev/null - 定位头文件:
find /usr/include /usr/local/include -name "header.h"或使用whereis header.h。
找不到库时的解决办法
- 编译期找不到头文件或库
- 用 -I<
头文件路径>
指定头文件目录,用 -L<
库目录>
指定库目录,用 -l<
库名>
指定库(例如:
g++ main.cpp -I/my/include -L/my/lib -lmylib)。
- 用 -I<
头文件路径>
指定头文件目录,用 -L<
库目录>
指定库目录,用 -l<
库名>
指定库(例如:
- 运行期找不到 .so
- 将库目录加入可执行文件的 RPATH/RUNPATH:
g++ main.cpp -L/my/lib -lmylib -Wl,-rpath,/my/lib - 临时使用环境变量:
LD_LIBRARY_PATH=/my/lib:$LD_LIBRARY_PATH ./your_app - 系统级配置:在 /etc/ld.so.conf.d/ 新建一个 .conf 文件写入库目录,执行
sudo ldconfig更新缓存。
- 将库目录加入可执行文件的 RPATH/RUNPATH:
- 版本与多架构注意
- 确认库与程序架构一致(如 x86_64 vs ARM),并使用与库版本匹配的 -l 名称。
安装与获取第三方 C++ 库的方式
- APT 包管理器(优先推荐)
- 安装开发包:
sudo apt install libname-dev(例如:sudo apt install libeigen3-dev libann-dev)。
- 安装开发包:
- 源码编译安装
- 常见流程:
mkdir build & & cd build & & ../configure --prefix=/usr/local & & make & & sudo make install - 或 CMake:
cmake .. & & make & & sudo make install(库与头文件分别进入 /usr/local/lib 与 /usr/local/include)。
- 常见流程:
- 其他包管理器与方式
- vcpkg、Conan 等跨平台 C++ 包管理器;或下载 .deb 包用
sudo dpkg -i xxx.deb安装。
- vcpkg、Conan 等跨平台 C++ 包管理器;或下载 .deb 包用
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu C++库文件哪里找
本文地址: https://pptw.com/jishu/773748.html
