首先我尝试下载iODBC。
我下载了GnuWin32 autoconf(2.63)进行解析。但它无法解析,因为当我在MSYS中使用configure.in的路径启动autoconf时,它无法找到一些文件:
./ autoconf:第615行:C:/ PROGRA~2 / GnuWin32 / autoconf / bin / autom4te:没有这样的文件或目录 ./autoconf:第615行:exec:C:/ PROGRA~2 / GnuWin32 / autoconf / bin / autom4te:无法执行:没有这样的文件或目录
有趣的是,autoconf已放置在GnuWin32 / bin目录中,并且autom4te位于附近。
然后我决定尝试使用unixODBC。我从home link下载了库2.3.2,并开始配置它。它做得很好。 然后我跑#34;做检查"。失败了:
iniOpen.c: In function 'iniOpen':
iniOpen.c:401:43: error: 'EOVERFLOW' undeclared (first use in this function)
( errno != ENOSPC ) && ( errno != EOVERFLOW ) &&
^
iniOpen.c:401:43: note: each undeclared identifier is reported only once for each function it appears in
iniOpen.c:402:20: error: 'EWOULDBLOCK' undeclared (first use in this function)
( errno != EWOULDBLOCK ))
我发现EWOULDBLOCK和EOVERFLOW从未在其他任何地方遇到过。我还发现它猜测从MinGW \ include \ errno.h中取出它们,在那里我找到了所有其他的constaints(例如ENOSPC)。我还发现了EWOULDBLOCK和EOVERFLOW的提升" cerrno.hpp"和其他有错误的文件。我解决了问题,正在考虑#ifndef - #define - #endif。
现在我有" ld.exe的问题:找不到-lpthread" - 链接器正在尝试链接系统不可用的posix线程。我可以删除它,但我应该添加什么呢?或者更好的是从posix thread for Win link下载并构建pthread_win32?
它是为EWOULDBLOCK,EOVERFLOW添加定义并使用flag --enable-threads=no
所以,我的问题是:有没有正确的方法从MinGW WITH线程使用ODBC?如果我是正确的方式,如何解决这些奇怪的问题(至少因为我下载了标记为"稳定")的问题?