MinGW有没有办法使用ODBC?

时间:2014-07-07 12:26:10

标签: c++ odbc mingw

首先我尝试下载iODBC。

  • 我的MSYS控制台无法配置它,即使它"安装"记录命令,因为它只有configure.in,必须由autoconf解析。
  • 我下载了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位于附近。

  • 我尝试重命名configure.in来配置,但我在第一行收到语法错误" AC_PREREQ(2.59)"。另外我在互联网上发现2.63可能不适用于2.59,并且没有继续尝试的愿望。
  • 我也尝试过运行bootstrap,但它落在"第145行: - force:command not found"。

然后我决定尝试使用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?如果我是正确的方式,如何解决这些奇怪的问题(至少因为我下载了标记为"稳定")的问题?

0 个答案:

没有答案