使用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
答案 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.