我的编程空间,编程开发者的网络收藏夹
学习永远不晚

解决cannot find -lm

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

解决cannot  find  -lm

好记性,不能烂笔头

这个问题我因为不是第一次遇到了,但是每次都去网站找答案,结果找了一圈,发现大多都并不能解决问题,这次终于花了点时间解决了这个问题,故此记录下来

在python 下安装 mysqlclient 是出现如下 错误, 安装命令 pip install mysqlclient

  copying MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
  running build_ext
  building 'MySQLdb._mysql' extension
  creating build/temp.linux-x86_64-3.6
  creating build/temp.linux-x86_64-3.6/MySQLdb
  gcc -pthread -B /root/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,4,4,'final',0) -D__version__=1.4.4 -I/usr/include/mysql -I/root/anaconda3/envs/py36/include/python3.6m -c MySQLdb/_mysql.c -o build/temp.linux-x86_64-3.6/MySQLdb/_mysql.o -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -fPIC -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1
  MySQLdb/_mysql.c: In function ‘_mysql_field_to_python’:
  MySQLdb/_mysql.c:1156:5: warning: case value ‘245’ not in enumerated type ‘enum enum_field_types’ [-Wswitch]
       case 245: // JSON
       ^
  gcc -pthread -shared -B /root/anaconda3/envs/py36/compiler_compat -L/root/anaconda3/envs/py36/lib -Wl,-rpath=/root/anaconda3/envs/py36/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.6/MySQLdb/_mysql.o -L/usr/lib64 -lmysqlclient -lpthread -lm -lrt -ldl -o build/lib.linux-x86_64-3.6/MySQLdb/_mysql.cpython-36m-x86_64-linux-gnu.so
  /root/anaconda3/envs/py36/compiler_compat/ld: cannot find -lmysqlclient
  collect2: error: ld returned 1 exit status
  error: command 'gcc' failed with exit status 1
  
  ----------------------------------------
  Failed building wheel for mysqlclient
  Running setup.py clean for mysqlclient
Failed to build mysqlclient
Installing collected packages: sqlparse, django, mysqlclient
  Running setup.py install for mysqlclient ... error
    Complete output from command /root/anaconda3/envs/py36/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-yp2ohy67/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-l7utm1yx/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.6
    creating build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/__init__.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/_exceptions.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/compat.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/connections.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/converters.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/cursors.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/release.py -> build/lib.linux-x86_64-3.6/MySQLdb
    copying MySQLdb/times.py -> build/lib.linux-x86_64-3.6/MySQLdb
    creating build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/__init__.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/CLIENT.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/CR.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/ER.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    copying MySQLdb/constants/FLAG.py -> build/lib.linux-x86_64-3.6/MySQLdb/constants
    running build_ext
    building 'MySQLdb._mysql' extension
    creating build/temp.linux-x86_64-3.6
    creating build/temp.linux-x86_64-3.6/MySQLdb
    gcc -pthread -B /root/anaconda3/envs/py36/compiler_compat -Wl,--sysroot=/ -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,4,4,'final',0) -D__version__=1.4.4 -I/usr/include/mysql -I/root/anaconda3/envs/py36/include/python3.6m -c MySQLdb/_mysql.c -o build/temp.linux-x86_64-3.6/MySQLdb/_mysql.o -g -pipe -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -fPIC -g -fabi-version=2 -fno-omit-frame-pointer -fno-strict-aliasing -DMY_PTHREAD_FASTMUTEX=1
    MySQLdb/_mysql.c: In function ‘_mysql_field_to_python’:
    MySQLdb/_mysql.c:1156:5: warning: case value ‘245’ not in enumerated type ‘enum enum_field_types’ [-Wswitch]
         case 245: // JSON
         ^
    gcc -pthread -shared -B /root/anaconda3/envs/py36/compiler_compat -L/root/anaconda3/envs/py36/lib -Wl,-rpath=/root/anaconda3/envs/py36/lib -Wl,--no-as-needed -Wl,--sysroot=/ build/temp.linux-x86_64-3.6/MySQLdb/_mysql.o -L/usr/lib64 -lmysqlclient -lpthread -lm -lrt -ldl -o build/lib.linux-x86_64-3.6/MySQLdb/_mysql.cpython-36m-x86_64-linux-gnu.so
    /root/anaconda3/envs/py36/compiler_compat/ld: cannot find -lmysqlclient
    collect2: error: ld returned 1 exit status
    error: command 'gcc' failed with exit status 1
    
    ----------------------------------------
Command "/root/anaconda3/envs/py36/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-yp2ohy67/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-l7utm1yx/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-yp2ohy67/mysqlclient/


我们可以看到有很多报错,那到底哪一行是具体导致问题的呢?

一度我以为是gcc相关,结果依赖全部安装,但还是依旧报错,然后查找到 cannot find -lmysqlclient这行

网上有很多这种同类问题,然后顺序进行排查,最终问题就是如此

lmysqlclient文件其实是 对应了 mysqlclient.so 这个文件,然后我也执行了如下命令

$ locate libmysqlclient.so

如果提示 locate 不存在,请执行下面语句安装

$ sudo yum install mlocate

$ sudo updatedb

然后输出结果让我一下明白

/usr/lib64/libmysqlclient.so.12
/usr/lib64/libmysqlclient.so.12.0.0
/usr/lib64/libmysqlclient.so.14
/usr/lib64/libmysqlclient.so.14.0.0
/usr/lib64/libmysqlclient.so.15
/usr/lib64/libmysqlclient.so.15.0.0
/usr/lib64/libmysqlclient.so.16
/usr/lib64/libmysqlclient.so.16.0.0

系统有这么多相关的 libmysqlclient文件,但是没有 libmysqlclient.so文件

如此解决问题就简单了,直接 做个软连接就OK

$ ln -s /usr/lib64/libmysqlclient.so.16 /usr/lib64/libmysqlclient.so

然后执行 pip install mysqlclient 安装,最后成功安装

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

解决cannot find -lm

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

解决cannot find -lm

好记性,不能烂笔头这个问题我因为不是第一次遇到了,但是每次都去网站找答案,结果找了一圈,发现大多都并不能解决问题,这次终于花了点时间解决了这个问题,故此记录下来在python 下安装 mysqlclient 是出现如下 错误, 安装命令 p
2023-01-31

node.js报错:Cannot find module 'ejs'的解决办法

发现问题 最近同事问了一个问题,他在用node.js的时候,发现node.js报错了,错误显示:Error: Cannot find module 'ejs'at Function.Module._resolveFilename (modu
2022-06-04

如何解决安装websocket还是报错Cannot find module'ws'问题

无法找到“ws”模块的WebSocket安装故障排除在安装WebSocket客户端库时,开发人员可能遇到“无法找到‘ws’模块”的错误。此错误可能是由于以下原因:原因:模块未安装模块版本不兼容路径配置错误防火墙或代理配置故障排除指南:验证模块是否已安装检查模块版本配置路径检查防火墙或代理设置其他提示:更新NPM清除NPM缓存使用Yarn查看日志
如何解决安装websocket还是报错Cannot find module'ws'问题
2024-04-08

解决AS中启动AVD报错Emulator: PANIC: Cannot find AVD system path. Please define ANDROID_SDK_ROOT

前言 在安装好Android Studio后,启动AVD时报如下错误 Emulator: Process finished with exit code 1 Emulator: PANIC: Cannot find AVD system p
2022-06-06

pycharm中keras导入报错无法自动补全cannot find reference怎么解决

这篇文章主要介绍“pycharm中keras导入报错无法自动补全cannot find reference怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“pycharm中keras导入报错无法
2023-07-02

ubuntu中双系统启动问题 cannot find grldr in all devices的解决方法

本篇文章给大家分享的是有关双系统启动问题 cannot find grldr in all devices的解决方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一,问题 旨在
2023-06-13

npm出现Cannot find module 'XXX\node_modules\npm\bin\npm-cli.js'错误的解决方法

最近在启动项目的时候会报这个错就是npm丢失,所以下面这篇文章主要给大家介绍了关于npm出现Cannot find module 'XXX\node_modules\npm\bin\npm-cli.js'错误的解决方法,需要的朋友可以参考下
2022-11-13

调用Hybris API时遇到的错误消息Cannot find user with uid该如何解决

调用Hybris API时遇到的错误消息Cannot find user with uid该如何解决,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。今天工作中试图调用Commer
2023-06-04

【已解决】Could not find artifact mysql:mysql-connector

今天遇到个问题困扰了我20分钟,我最终解决了他,写下此篇博客。原问题是: Could not find artifact mysql:mysql-connector-java:pom:unknown in centra 解决方案 在pom.
2023-08-17

R语言lm函数求的系数为空值怎么解决

当R语言的lm函数求得的系数为空值时,可能是因为数据存在缺失值或者其他异常情况导致回归模型无法收敛。要解决这个问题,可以尝试以下几种方法:检查数据:首先检查数据是否存在缺失值或异常值,可以通过summary()函数查看数据的统计信息,如果发
R语言lm函数求的系数为空值怎么解决
2024-03-06

解决CocoaPods could not find compatible versions for pod “React-Core”

一、当执行ios项目时,执行pod install出现下面的错误信息 [!] CocoaPods could not find compatible versions for pod "React-Core": In Podfile:
2023-08-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录