x64 Windows下配置C语言开发MySQL的环境遇到的问题

来源:互联网 发布:js new string a 编辑:程序博客网 时间:2024/05/09 17:29

由于对C比较熟悉,最近要处理一个数据文件,所以想用C语言控制台程序处理并存入MySQL数据库。


环境:

在64bit的win 10上安装64bit的MySQL (full 模式完全安装),再用64bit的codeblock+GNU GCC编译, 或者用64bit VS2013 + cl编译器编译。(最后发现这两种方式都可以,并不是说Mysql默认的windows的库只适用于cl编译器。)


出现的问题 - 1:

设置对mysql库文件的搜索路径后,程序中添加对mysql.h 的include后现找不到两个头文件:

      binary_log_funcs.h 和  binary_log_types.h

解决方法:

通过在https://github.com/mysql/mysql-server/tree/5.7/libbinlogevents/export 下载源码,添加到%MySQL_HOME%\include\下,也就是mysql.h所在的位置解决。


出现的问题 - 2:(主要问题)

形如 “unresolved external symbol _mysql_query@8 referenced in function” 链接问题。

问题原因:

主要是因为使用的库(64 bit)和软件(64 bit)所要编译的软件Win32控制台程序(32 bit)不兼容的问题导致。所以与编译器无关,要编译的32bit程序要配合32bit的库文件。

解决方法:

在这个地址: http://dev.mysql.com/downloads/connector/c/ 下载32bit的Connector,也就是编译时所要用到的库和头文件。可以用zip版本,解压缩直接添加路径的依赖到解压对应文件夹并在Link libraries中添加lib文件就可以。这样编译和链接都可以通过。

形如:

   头件在 C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\include

   库文件位置:C:\Program Files (x86)\MySQL\MySQL Connector C 6.1\lib\libmysql.lib


出现的问题 - 3:

codeblock在运行时提示计算机中丢失libmysql.lib文件而不能运行。

解决方法:

需要将dll文件拷贝到Debug或者Release的exe所在文件夹下才可以。应该还有更好的办法将库文件打包进去或者操作一下。大家有好的办法可以留言。回头就改。


VS的问题原因和codeblock是一样的。处理方法相似,过程中觉得C#开发这个东西比用C快多了。做这样的小应用还是面向对象来的快。C#中添加依赖就很方便。

0 0
原创粉丝点击