- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在cygwin中从源代码构建MySQL的“Connector/C”,但存在一些问题。
-一些背景-
我们可以谈论很多人为什么要在cygwin中使用libmysql
。在这种情况下,使用cygwin工具集在windows平台上进行unix开发更简单。
从我的研究来看,我可以得到一个旧版本(5.1,也许)的连接器来构建OK。但是,当MySQL开发人员从./configure
驱动的构建配置切换到cmake
驱动的构建配置时,cygwin的支持逐渐消失。
MySQL提供下载的源tar-ball版本是6.0.2,所以这就是我正在研究的版本。
-一个(某种)已解决的问题-
我遇到的第一个问题是在dtoa()
中发现了一个不兼容的stdlib.h
重新声明。(许多其他人试图构建各种最新版本,也遇到了这个问题,如果谷歌是任何指南的话。)有各种各样的建议潜伏在网上解决这个问题。我的选择:暂时将stdlib.h
替换为已删除dtoa()
定义的。丑陋,真实。但它起作用了。
(这个“修复”消除了一个早期的编译错误,整个过程运行到链接,在链接中由于明显无关的原因失败。)
-未解决的问题-libmysql
代码依赖于yaSSL
。尽管我给了cmake
参数,但情况似乎是这样的,只有在使用cygwin安装工具/包管理器将-DWITH_OPENSSL=1
包添加到我的环境中之后,才能接受该参数。openssl-devel
似乎在使用“纯虚拟”类成员。从我的(有限的)C++内部结构的知识来看,这意味着编译器隐式地假设特殊符号/函数yaSSL
的声明,这会导致链接器搜索__cxa_pure_virtual()
函数的(单个)定义。
按照代码和构建过程的结构,每个__cxa_pure_virtual()
源实现文件都被编译成一个对象文件。其中许多文件引用了另一个定义(即包含的实现)yaSSL
。在链接阶段,包含定义的每个对象彼此冲突。(因为符号被定义为__cxa_pure_virtual()
,或者更具体地说:
extern "C" {
int __cxa_pure_virtual() {
assert("Pure virtual method called." == "Aborted");
return 0;
}
}
extern
,例如:
CMakeFiles/libmysql.dir/__/extlib/yassl/taocrypt/src/algebra.cpp.o:algebra.cpp:(.text+0x40): multiple definition of `___cxa_pure_virtual'
CMakeFiles/libmysql.dir/__/extlib/yassl/taocrypt/src/aes.cpp.o:aes.cpp:(.text+0x0): first defined here
multiple definition error
的所有定义,但这只是将多个定义错误替换为未定义的引用错误。
__cxa_pure_virtual()
的所有定义都改成了
__cxa_pure_virtual()
,但希望编译器能从内联使用的函数中删除外部引用,这是徒劳的。(我不确定C++何时使用查找表作为间接的一层,但似乎
inline
在这些情况下可能不是一种选择。)如果我记得那个测试的具体结果:它创建了与不定义
inline
的相同结果。
__cxa_pure_virtual()
源代码中寻找纯虚拟函数的用法,但那看起来像一个兔子洞。。。
libmysql
的定义放在一个独立的对象文件中(然后,我将从每个其他对象文件中删除该定义)。
最佳答案
为什么需要用Cygwin构建Connector/C?普通的win32 libmysql.dll不够吗?
让它编译的一些想法:
A:您正在尝试以GCC作为C++编译器编译连接器/ C,最好不要使用C++。
b)克马克。-DSKIP_SSL=1(查看CMakeLists.txt表明它将删除yassl)
是的,MySQL已经放弃了cygwin(而且它已经很多年不支持它了)。我不知道是什么让Oracle重新启用它,他们目前正在削减平台支持(例如HPUX和AIX被放弃)。我个人也不认为Cygwin端口有多大价值,它不是最热门的平台,只要你能使用本地Windows端口。
关于mysql - 无法从cygwin中的源代码构建mysql连接器/c(libmysql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6258898/
我们被要求从 Tomcat 1.6 迁移到 TomEE。在我们的应用程序中,我们使用 tomcat 作为嵌入式服务器。当我们尝试根据以下教程“http://www.copperykeenclaws.c
我需要一些有关配置文件的帮助。我已经在我的项目中包含了MySql.Data.dll,但是我如何告诉配置文件这个dll包含MySQL连接器? NHibernate.Connection.Dr
我花了几个小时盯着这段代码。请新鲜的眼睛! 这是查询的简化版本: You have an error in your SQL syntax; check the manual that corresp
我正在开发一个应用程序,它可以在不使用任何网络服务的情况下将数据插入数据库。我用 MySQL Workbench 在我的笔记本上创建了一个数据库。我可以使用模拟器将数据插入数据库,但我无法使用手机将数
我刚刚发现了 Zimbra,并且有一个用 Java 编写的连接器。我一直在网上寻找其他人的一些文档或经验,但找不到任何东西。是否有任何关于 API 的良好文档,以便我可以开始并检查可以用它做什么? 谢
我正在使用 C++ mysql 连接器在我的 mysql 数据库中执行操作。 我的 C++ 程序是一个实时应用程序(rest api),它始终在云端运行,始终等待用户请求。 当我启动第一种类型的程序时
我有一个 C 进程正在快速写入 mysql 数据库~每秒 10 次。此过程使用 MySql C 连接器。 运行约2分钟后,进程挂起,系统监视器显示 "futex_wait_queue_me" ,还有
有谁知道使用 TraceListener 为 MySQL 连接器/网络启用跟踪的方法我希望它记录实际针对数据库运行的 SQL 查询,即查看参数值被替换的 SQL。 最佳答案 从 mysql 5.1.2
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
作为 EF 菜鸟,我正在尝试将 Entity Framework 6 Code First 与我安装在我的开发计算机上的 MySql Server 5.6 结合使用。 我做了一个非常小的测试控制台项目
我需要将 Google Spreadsheet 与 JasperReports Server 一起使用,为此我需要一个用于 Google Spreadsheet 的 JDBC 连接器。 我找到了这个
我已经安装了 Tycho m2e 连接器,如下所述:http://codeandme.blogspot.ru/2012/12/tycho-build-1-building-plug-ins.html
我被要求使用 SAP .NET 连接器。我目前使用 .NET 4.0 和 VS2010。有什么我需要降级的吗? 另外,有没有人知道有关如何使用它的任何当前在线教程?我所拥有的只是来自 SAP 的信息,
我想知道什么是 m2e 连接器。除了这个页面,我在互联网上没有找到太多描述它们的内容: http://objectledge.org/confluence/display/TOOLS/M2E+Conn
是否可以通过 VGA 连接器镜像屏幕?找不到任何关于此的内容。 最佳答案 我一直在寻找和你一样的东西。上周末我写了一个小的 UIApplication 类别来添加镜像支持。我在 Google Code
我正在开发从 SQL Server Db 提取 CDC 数据的逻辑应用程序。我正在使用“获取行”操作,但当我尝试使用过滤查询参数时,问题就出现了。 代码 eq '793'(有效) __$operati
用例: 应用程序使用spark处理数据5分钟,要处理的数据可能是数据存储中数十万条记录的数据。 数据存储的选择是Elastic Search。 问题: 我们在Elasticsearch中是否有用于 S
我已经安装了 hadoop 3 版本的 GCS 连接器,并将以下配置添加到 core-site.xml,如 Install.md 中所述.目的是将数据从本地集群中的 hdfs 迁移到云存储。 核心站点
如何删除 debezium 连接器。我正在关注本教程 https://debezium.io/documentation/reference/tutorial.html我看到了注册连接器的方法,但不知
如何删除 debezium 连接器。我正在关注本教程 https://debezium.io/documentation/reference/tutorial.html我看到了注册连接器的方法,但不知
我是一名优秀的程序员,十分优秀!