windows7安装用于mysql的diesel的坑
安装diesel遇到环境变量的大坑。
要mysqlclient
错误:
error: could not find native static library mysqlclient, maybe an -L flag is missing?
error: Could not compile mysqlclient-sys.
解决方案:需要指定mysqlclient.lib文件的位置,找到这个文件的根目录,添加永久用户变量(高级环境设置里的用户变量会增加这一条):
setx MYSQLCLIENT_LIB_DIR "C:\Program Files\MySQL\MySQL Server 5.7\lib"
这里也有个大坑,详见章节“平台版本冲突”
要链接SQLlite
错误:
Compiling diesel_cli v1.4.1
error: linking withlink.exe
failed: exit code: 1181
|
= note: “C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\link.exe” “/NOLOGO” “/NXCOMPAT” “/LIBPATH:C:一坨一坨省略”
= note: LINK : fatal error LNK1181: cannot open input file ‘sqlite3.lib’error: aborting due to previous error
error: failed to compilediesel_cli v1.4.1
, intermediate artifacts can be found atC:\Users\me\AppData\Local\Temp\cargo-installWriLzQ
Caused by:
could not compilediesel_cli
To learn more, run the command again with --verbose.
解决方法:因为我们开发只用mysql,所以执行
cargo install diesel_cli --no-default-features --features mysql
相比cargo install diesel_cli
,从100多个依赖,变成95个。
平台版本冲突
问题
= note: libcpmt.lib(xthrow.obj) : error LNK2038: mismatch detected for ‘_MSC_VER’: value ‘1900’ doesn’t match value ‘1800’ in libmysqlclient_sys-cd45e48baa434a2c.rlib(net_serv.obj)
libcpmt.lib(syserror.obj) : error LNK2038: mismatch detected for ‘_MSC_VER’: value ‘1900’ doesn’t match value ‘1800’ in libmysqlclient_sys-cd45e48baa434a2c.rlib(net_serv.obj)
LINK : warning LNK4098: defaultlib ‘LIBCMT’ conflicts with use of other libs; use /NODEFAULTLIB:library
libmysqlclient_sys-cd45e48baa434a2c.rlib(xml.obj) : error LNK2001: unresolved external symbol sprintf
libmysqlclient_sys-cd45e48baa434a2c.rlib(libmysql.obj) : error LNK2001: unresolved external symbol sprintf
libmysqlclient_sys-cd45e48baa434a2c.rlib(client.obj) : error LNK2001: unresolved external symbol sprintf
libmysqlclient_sys-cd45e48baa434a2c.rlib(my_time.obj) : error LNK2001: unresolved external symbol sprintf
原因:我安装的是visual studio 2015(MSC_VER是1900),而mysqlclient.lib是用mysql5.7,它是用visual studio 2013 (MSC_VER是1800)编译的,包括里面的mysqlclient.lib,因此存在冲突。
解决办法:要么安装mysql 8,它的mysqlclient.lib符合版本要求;要么安装mysql connector 高版本,C:\Program Files\MySQL\MySQL Connector C 6.1\lib\vs14
下面的mysqlclient.lib符合版本要求。我用的是第二个方法(需要相应修改环境变量)。
安装mysql-connector-c-6.1.11-winx64之后,终于看到了vs14:
我试过用mysql installer删除mysql connector再重新安装,这种方法还是低版本的(C:\Program Files\MySQL\MySQL Connector C 6.1\lib\
下面最高是vs12,没有vs14)
变更环境变量记得重启terminal
结果
一 一搞定上述三个问题后终于完成diesel_cli的安装,此过程脑海中一遍遍响起可爱多的 “这就是翔,一坨一坨的翔”
参考资料
https://blog.csdn.net/leo__1990/article/details/89893951
windows上安装MySQL 8 依赖Microsoft Visual C++ 变化https://blog.csdn.net/u012814856/article/details/76343540
问题解决:error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1800”不匹配值“1900”https://baike.baidu.com/item/_MSC_VER/9468279?fr=aladdin
visual studio版本和MSC_VER的值https://github.com/diesel-rs/diesel/issues/1286
在官方的issue里,解决方案众说纷纭。https://blog.csdn.net/wangmarkqi/article/details/104618575
前人遇到坑(我比它还多一个)
windows7安装用于mysql的diesel的坑相关推荐
- windows7 安装MySQL 解决报错 服务没有响应控制功能
windows7 安装MySQL 1. 下载MySQL 官网:https://dev.mysql.com/downloads/installer/ 下载想要的版本. 下载的是压缩文件,解压到安装目录. ...
- Linux 环境下安装 MySQL,各种踩坑、疑难杂症 | 原力计划
作者 | 红颜祸水nvn 来源 | CSDN博客,责编 | 夕颜 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 本文中,作者总结了在使用Linux CentOS 6 ...
- mysqlclient==1.3.7对应mysql版本_MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)...
由于之前电脑上安装的MySQL版本是比较老的了,大概是5.1的版本,不支持JSON字段功能.而最新开发部门开发的的编辑器产品,使用到了JSON字段的功能. 因此需要升级MySQL版本,升级的目标版本是 ...
- mysql5.7.76安装,MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)
楔子 由于之前电脑上安装的MySQL版本是比较老的了,大概是5.1的版本,不支持JSON字段功能.而最新开发部门开发的的编辑器产品,使用到了JSON字段的功能. 因此需要升级MySQL版本,升级的目标 ...
- 阿里云ECS服务器配置LAMP时安装配置mysql数据库填坑(二)
阿里云ECS服务器配置LAMP时安装配置mysql数据库填坑(二) 上篇文章讲到的是安装apache服务器时遇到的坑,经过排错总算是把Apache的坑填完了,没想到安装mysql又跳坑里了,真是不得不 ...
- 下载perl的mysql模块_安装用于操作MySQL的Perl模块
在我使用Webmin(version 1.480)管理FreeBSD主机上的MySQL数据库服务器时出现: "警告:您的系统未安装Perl 模块 DBI 和 DBD::mysql,Webmi ...
- Linux最小体积mysql安装_Linux下安装MySQL以及一些小坑
第一次写博客,各位凑合着看吧(假装有人看). 我这里使用的是centos7. 1.首先打开终端,查看有没有安装过MySQL: [root@localhost lyp]# rpm -qa | grep ...
- 阿里云服务器快速安装Mysql,贴心手把手教你安装,本人踩过很多坑!(我的服务器系统CentOS 7.8 64位)
1.先查询服务器是否安装了Mysql数据库 rpm -qa | grep mysqlrpm -e 文件名(卸载数据库,没有就跳过) 2.可以先新建一个文件夹 mkdir 文件夹名 3.下载mysql包 ...
- 记一次安装mysql服务的踩坑记录
今天在搞sharding-jdbc做分库分表.读写分离的操作.为了更深刻的了解,于是自己就在本机搞了两个mysql服务.发现在创建表的时候总是报这个错 [Err] 1055 - Expression ...
最新文章
- mysql binlog_checksum_【原创】研发应该懂的binlog知识(下)
- SUPPORTDIR引用的文件的加入
- java使用链栈实现数制转换
- socket的NIO操作
- 计算理论 形式语言与自动机_下推式自动机(PDA)| 计算理论
- 使用git版本管理时的免密问题
- ajax如何向action发送数据的
- uniapp 微信小程序生成二维码
- 怎么恢复优盘里隐藏的数据 u盘隐藏数据恢复教程
- 《智慧城市》顶层设计解读
- 数组公式和普通公式,差别在于思维方式的不同! 要用看数组的方式看待数据
- 3d在线展示_手表三维商品展示解决方案
- 计算机系统概论基本知识
- 华为Mate50和小米13 参数对比
- 最新初中级前端面试题合集一,你确定不看一看嘛
- WebDAV之葫芦儿·派盘+人升
- 数据清洗的几种常用手段
- Pandas 最全的使用方式(下)
- 怎样设置word背景图片每一页都不同
- 为什么极品飞车服务器维修,极品飞车:无极限赛车无法连接服务器是什么原因...