在用cmake创建了一个解决方案后,我在Visual Studio中遇到了1400个错误。主要的问题是,似乎没有人编译连接器,只是为他们的项目使用预编译库,在Windows上更是如此。下面是一些错误,似乎timespec被重新定义了一次,首先是在中,然后是在my_global.h中。错误和定义。
所以问题是,我怎么修复1400个错误?
或者至少,一些如何摆脱重新定义的建议会很棒!
如果您有任何问题,请在下面的代码中输入您的问题。//秒-〉= 0长电视_纳秒;//纳秒- [0,999999999] };#endif我的全局. h
struct timespec {
union ft64 tv;
/* The max timeout value in millisecond for native_cond_timedwait */
long max_timeout_msec;
};
错误C2011 '时间规格':“结构”类型重定义(编译源文件)
错误C2039 'tv':不是“timespec”的成员(正在编译源文件)
错误C2227 "-〉tv“的左边必须指向类/结构/联合/泛型类型(正在编译源文件C:\Users\DDubinin\Downloads\mysql-connector-c-6. 1. 6-src\libmysql\authentication_win\handshake. cc)
错误C2227 "-〉max_timeout_msec“的左边必须指向类/结构/联合/泛型类型(正在编译源文件C:\Users\DDubinin\Downloads\mysql-connector-c-6.1.6-src\libmysql\authentication_win\plugin_client.cc)验证_win_client c:\用户\DDubinin\下载\mysql-connector-c-6.1.6-src\包含\my_global.h 682
3条答案
按热度按时间xdnvmnnf1#
我将关闭这个问题,设法编译源代码与较旧的,VS2013 x64,版本的Visual Studio,和CMake 4.3.1...
看来,Visual Studio 2015中的新变化正在破坏C连接器源代码,我希望MySQL团队将在未来的版本中修复此问题。
xmakbtuz2#
我使用了MySQL服务器代码(即mysql-5.7.13.zip)并从中编译了MySQL连接器/C。
1qczuiv03#
我在VS 2015中编译这段代码的动机是,当我编译mysqlcppconn 1.1.8时,我得到了错误:
1800
、1900
表示使用的vs版本。我搜索了一下,发现它表明我从mysql下载的
mysqlcppconn-static.lib
是使用VS 2013编译的,它在VS 2015中导致错误。我实际上遵循了这本指南,它对我很有效。
http://nov11.github.io/jekyll/update/2017/04/24/compilemysqlcppconnector1.1.8.html
我的操作系统是windows 10 x86
总结如下:
CMakeLists.txt
,以便编译器可以找到该库在这种情况下,我的boost版本是
boost_1_64_0
,mysql是mysql-5.6.26-win32
。https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.26-win32.zip修改
CMakeLists.txt
,添加行:snprintf link error
:注解掉mysql-server-include代码中
my_config.h
中的define snprintf _snprintf
行