无法使用vc2008在windows上构建libmysql
我想构建libmysql.dll,所以我从中获得了源代码mysql-connector-c-6.1.6-src.zip。无法使用vc2008在windows上构建libmysql,mysql,c,visual-c++,Mysql,C,Visual C++,我想构建libmysql.dll,所以我从中获得了源代码mysql-connector-c-6.1.6-src.zip。 然后使用cmake-gui.exe配置并生成vc 2008 sln,保留所有默认设置。 然后在构建时得到错误和警告,如下所示: mysql-connector-c-6.1.6-src\include\thr_cond.h(109) : error C2065: “ETIMEDOUT”: 未声明的标识符(an unspecified identifier) mysql-co
然后使用cmake-gui.exe配置并生成vc 2008 sln,保留所有默认设置。
然后在构建时得到错误和警告,如下所示:
mysql-connector-c-6.1.6-src\include\thr_cond.h(109) : error C2065: “ETIMEDOUT”: 未声明的标识符(an unspecified identifier)
mysql-connector-c-6.1.6-src\include\thr_rwlock.h(80) : warning C4013: “TryAcquireSRWLockShared” 未定义(not defined)
mysql-connector-c-6.1.6-src\include\thr_rwlock.h(102) : warning C4013: “TryAcquireSRWLockExclusive” 未定义(not defined)
我搜索了源代码,发现ETIMEDOUT是在my_pthread.h中定义的,所以我在thr_cond.h中包含了这个头,但仍然是错误的。TryAcquiresrBlockShared和TryAcquiresrBlockExclusive似乎仅在Win7及更高版本上受支持 我做错什么了吗?
如何构建libmysql?
任何帮助都将不胜感激。下载以前的版本(),它不使用TryAcquireSRWLockShared()API函数。 通过一些小技巧,它可以用MSVC2008编译干净 以下是修改(基于提取的zip文件根):
// avoid annoying warning
#ifndef HAVE_COMPRESS
# define HAVE_COMPRESS
#endif
使用C++编译器编译C代码通常是一个非常糟糕的想法。语言之间存在着许多主要的和细微的差别。@奥拉夫,VC的编译器C.exe也可以编译C代码,当文件是XXX.C时编译C++,而文件是XXX.CPP,这不是问题,我想,因为目前的标准是,VC甚至不支持C99,它实际上不能。只要看看这里,你就会发现一大堆问题。然而,我不能再进一步帮助你了。这是一个更一般的提示,由一些关键字和标记触发。@Olaf,编译后的二进制文件可在中找到。这意味着libmysql可以用vc编译。我只想自己编译。谢谢