在Windows上使用C ++ MySQL驱动程序

时间:2013-07-31 01:21:38

标签: c++ mysql windows

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

任何想法是什么问题?

这就是我要安装的。

  • 下载并安装MinGW到C:\ MinGW。 http://www.mingw.org/
  • 下载提升并将提升文件夹移至C:\ MinGW \ include
  • 下载Connector / C ++ 1.1.3 http://dev.mysql.com/downloads/connector/cpp/
  • 将mysql_connector / include / * .h(递归地)移动到C:\ MinGW \ include \
  • 将mysql_connector / lib / mysqlcppconn-static.lib移动到C:\ MinGW \ lib \ libmysqlcppconn-static.a
  • 将mysql_connector / lib / mysqlconncpp.dll移至C:\ MinGW \ lib \ mysqlconncpp.dll
  • 更改cppconn / config.h以删除重复
  • 复制C ++示例并将其命名为test.cpp http://dev.mysql.com/doc/refman/5.1/en/connector-cpp-examples-complete-example-1.html
  • 使用命名空间sql :: mysql"添加"到文件(推荐)
  • run" g ++ test.cpp -L C:\ MinGW \ lib -l mysqlcppconn-static"

1 个答案:

答案 0 :(得分:2)

可能在命名空间中。

扔进去看看会发生什么:

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

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

What problems can appear when using G++ compiled DLL (plugin) in VC++ compiled application?

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

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