1

实际错误是链接器错误。对 get_driver_instance 的未定义引用。

任何想法是什么问题?

这就是我所做的安装。

4

1 回答 1

3

它可能在命名空间中。

扔进去看看会发生什么:

using namespace sql::mysql; 

编辑:另外,您是否浏览过大约 869 次其他人在发布之前就堆栈溢出提出过同样的问题?

https://www.google.com/search?q=mysql+get_driver_instance+site:stackoverflow.com

如果不是这样,则可能是 c++ 名称修改的问题。

https://en.wikipedia.org/wiki/Name_mangling#Name_mangling_in_C.2B.2B

由于此类功能的名称修饰系统在编译器之间没有标准化,因此很少有链接器可以链接由不同编译器生成的目标代码。

我认为最终的答案在这里:

http://www.mingw.org/wiki/MixingCompilers

另一个堆栈溢出答案是这样说的:

在VC++编译的应用程序中使用G++编译的DLL(插件)会出现什么问题?

您需要使用 g++ 编译器从源代码构建连接器:

http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-installation-source.html

于 2013-07-31T02:22:42.983 回答