這似乎是一個known issue。抓住libiodbc source,使用下面的補丁,編譯和安裝:
diff -ub libiodbc-3.52.6/include/iodbcunix.h.orig
--- libiodbc-3.52.6/include/iodbcunix.h.orig 2006-01-26 09:50:59.000000000 +0000
+++ libiodbc-3.52.6/include/iodbcunix.h 2007-12-24 19:33:57.859375000 +0000
@@ -124,6 +124,7 @@
#if defined (OBSOLETE_WINDOWS_TYPES)
typedef unsigned char BYTE;
#endif
+#ifndef WIN32
typedef unsigned short WORD;
typedef unsigned int DWORD;
typedef char * LPSTR;
@@ -131,6 +132,7 @@
typedef wchar_t * LPWSTR;
typedef const wchar_t * LPCWSTR;
typedef DWORD * LPDWORD;
+#endif
#if !defined(BOOL) && !defined(_OBJC_OBJC_H_)
typedef int BOOL;
UPDATE: Cygwin的人have a TODO for this issue,但現在已經好幾個月了。如果等待時間太長,您可以在此期間僞造:
#! /bin/bash
# run from the libiodbc build directory
gcc -shared -o cygiodbc-2.dll \
-Wl,--out-implib=libcygiodbc-2.dll.a \
-Wl,--export-all-symbols \
-Wl,--enable-auto-import \
-Wl,--whole-archive iodbc/.libs/libiodbc.a \
-Wl,--no-whole-archive
gcc -shared -o cygiodbcinst-2.dll \
-Wl,--out-implib=libcygiodbcinst-2.dll.a \
-Wl,--export-all-symbols \
-Wl,--enable-auto-import \
-Wl,--whole-archive iodbcinst/.libs/libiodbcinst.a \
-Wl,--no-whole-archive
cp cygiodbc{,inst}-2.dll /bin
感謝您的信息。事實證明,我最終刪除了我的Cygwin Perl安裝,而只是使用了ActivePerl。然後我更新了我的Cygwin路徑以適應。 – 2009-06-25 17:34:53