系统修改后CMake无法使用,报undefined symbol: uv_translate_sys_error错误求助
CMake符号查找错误解决建议:
uv_translate_sys_error未定义 这个错误是CMake无法找到依赖的libuv库中的uv_translate_sys_error符号,大概率是系统libuv库版本不匹配、链接路径被修改,或是CMake自身的链接信息损坏导致的,以下是具体解决步骤:
检查CMake的库链接情况
运行ldd $(which cmake)查看CMake关联的动态库,找到libuv.so相关条目,确认它指向的路径和版本是否正常。如果发现指向了非系统默认的libuv(比如你修改系统时新增的自定义库路径),可以临时调整库路径测试:export LD_LIBRARY_PATH=/usr/lib:$LD_LIBRARY_PATH cmake --version若恢复正常,说明是自定义库路径干扰了系统默认库的加载。
重装系统默认libuv库
用系统包管理器重新安装libuv,修复可能损坏的库文件:- Debian/Ubuntu系:
sudo apt install --reinstall libuv1 - RedHat/CentOS/Fedora系:
sudo yum reinstall libuv
安装完成后运行
sudo ldconfig更新系统库缓存。- Debian/Ubuntu系:
重新安装CMake
如果libuv修复后问题依旧,说明CMake自身的链接可能损坏,直接重装CMake:- 包管理安装:
Debian/Ubuntu系:sudo apt install --reinstall cmake
RedHat系:sudo yum reinstall cmake - 手动编译安装的CMake:重新下载对应版本源码,编译时确保使用系统默认的libuv库,避免指定自定义库路径。
- 包管理安装:
排查系统库路径配置
检查你修改系统时是否改动过LD_LIBRARY_PATH环境变量、/etc/ld.so.conf文件或/etc/ld.so.conf.d/目录下的配置,将可能引入冲突的路径注释或删除,之后运行sudo ldconfig更新缓存,再测试CMake。
内容的提问来源于stack exchange,提问作者Anurag Vohra
相关产品推荐
相关产品推荐

