使用Visual Studio 2015 Win64编译MySQL连接器

时间:2015-12-04 15:07:12

标签: c++ mysql c visual-studio-2015 redefinition

使用cmake创建解决方案后,我在构建期间面对Visual Studio中的1400个错误。 主要问题是,似乎没有人编译连接器,只是将预编译库用于他们的项目,在Windows上更是如此。 以下是一些错误,似乎timespec再次被重新定义,首先是在my_global.h中,然后是my_global.h中的第二次,错误和定义如下。

所以问题是,我该如何修复1400错误?

或者至少,如何摆脱重新定义的一些建议将是伟大的!

time.h中      #ifndef _CRT_NO_TIME_T      struct timespec          {             time_t tv_sec; //秒 - > = 0             长tv_nsec; //纳秒 - [0,999999999]          };      #万一 my_global.h

 struct timespec {
    union ft64 tv;
    /* The max timeout value in millisecond for native_cond_timedwait */
    long max_timeout_msec;
 };

错误C2011' timespec':' struct' type redefinition(编译源文件C:\ Users \ DDubinin \ Downloads \ mysql-connector-c-6.1.6-src \ mysys \ my_mess.c)mysys c:\ users \ ddubinin \ downloads \ mysql-connector-c-6.1 .6-src \ include \ my_global.h 660

错误C2039' tv':不是' timespec' (编译源文件C:\ Users \ DDubinin \ Downloads \ mysql-connector-c-6.1.6-src \ mysys \ my_malloc.c)mysys c:\ users \ ddubinin \ downloads \ mysql-connector-c-6.1.6 -src \ include \ my_global.h 681

错误C2227左边的' - > tv'必须指向class / struct / union / generic类型(编译源文件C:\ Users \ DDubinin \ Downloads \ mysql-connector-c-6.1.6-src \ libmysql \ authentication_win \ handshake.cc)auth_win_client c:\ users \ ddubinin \ downloads \ mysql-connector-c-6.1.6-src \ include \ my_global.h 681

错误C2227左边的' - > max_timeout_msec'必须指向class / struct / union / generic类型(编译源文件C:\ Users \ DDubinin \ Downloads \ mysql-connector-c-6.1.6-src \ libmysql \ authentication_win \ plugin_client.cc)auth_win_client c:\ users \ ddubinin \ downloads \ mysql-connector-c-6.1.6-src \ include \ my_global.h 682

2 个答案:

答案 0 :(得分:2)

我将关闭此问题,设法使用较旧的VS2013 x64版本的Visual Studio和CMake 4.3.1编译源代码......

看来,Visual Studio 2015中的新变化打破了C连接器源代码,我希望MySQL团队能够在未来的版本中解决这个问题。

答案 1 :(得分:0)

我使用了mysql服务器代码(即mysql-5.7.13.zip)并从中编译了MySQL Connector / C.