You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

64位CentOS7.2下make install将库安装到/usr/lib而非/usr/lib64的问题

解决CentOS 7.2 64位系统中CMake安装库到/usr/lib而非/usr/lib64的问题

这个问题在RHEL/CentOS这类64位发行版里挺常见的——它们默认用/usr/lib64存放64位库,但CMake有时候不会自动识别这个发行版特有的路径规则。下面给你几个实用的解决办法:

方法1:手动指定LIB_INSTALL_DIR参数

直接在cmake命令里添加-DLIB_INSTALL_DIR=/usr/lib64,强制指定库的安装路径。修改后的完整命令如下:

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DLIB_INSTALL_DIR=/usr/lib64 -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .. && sudo make install

方法2:设置CMake标准变量CMAKE_INSTALL_LIBDIR

CMake有个专门控制库安装目录的标准变量CMAKE_INSTALL_LIBDIR,在RHEL系系统里,把它设为lib64就能自动对应到/usr/lib64路径。命令修改为:

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_INSTALL_LIBDIR=lib64 -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .. && sudo make install

方法3:通过环境变量预先配置

如果不想每次执行cmake都加参数,可以先设置环境变量让CMake默认适配CentOS的路径规则:

export CMAKE_INSTALL_LIBDIR=lib64
# 接着执行你的原cmake命令即可
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .. && sudo make install

问题根源说明

不同Linux发行版的库路径规范有差异:Debian/Ubuntu系64位系统用/usr/lib/x86_64-linux-gnu,而RHEL/CentOS系用/usr/lib64。如果这个库的CMakeLists.txt没有做跨发行版的路径适配,就会默认把库安装到${CMAKE_INSTALL_PREFIX}/lib,也就是/usr/lib目录。

内容的提问来源于stack exchange,提问作者Zubair-Safenet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:08:24