Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法使用vc2008在windows上构建libmysql_Mysql_C_Visual C++ - Fatal编程技术网

无法使用vc2008在windows上构建libmysql

无法使用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

我想构建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-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文件根):

  • 将include/config win.h的第306行替换为:

    // avoid annoying warning
    #ifndef HAVE_COMPRESS
    #   define HAVE_COMPRESS
    #endif
    
  • CMakeLists.txt的注释行350-367(CPack指令导致CMake失败)

  • 遵循BUILD.win中的说明


  • 使用C++编译器编译C代码通常是一个非常糟糕的想法。语言之间存在着许多主要的和细微的差别。@奥拉夫,VC的编译器C.exe也可以编译C代码,当文件是XXX.C时编译C++,而文件是XXX.CPP,这不是问题,我想,因为目前的标准是,VC甚至不支持C99,它实际上不能。只要看看这里,你就会发现一大堆问题。然而,我不能再进一步帮助你了。这是一个更一般的提示,由一些关键字和标记触发。@Olaf,编译后的二进制文件可在中找到。这意味着libmysql可以用vc编译。我只想自己编译。谢谢