-
Notifications
You must be signed in to change notification settings - Fork 14
/
README.windows
145 lines (107 loc) · 5.75 KB
/
README.windows
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
Building DBD::ODBC on Windows
=============================
Quick hints:
1. Make sure when you run "perl Makefile.PL" that you specify which
make you are using (dmake, nmake). You do this with:
perl Makefile.PL MAKE=nmake
If you don't, ExtUtils::MakeMaker will generate the Makefile for
the default make which may not be the one you are going to use and
this will lead to make errors.
2. I've had a number of reports that attempting to build with Borland's
make does not work. If that happens to you please don't tell me; get
nmake or dmake.
3. If you are not interested in Unicode support disable it as Unicode
support is built in by default on Windows builds. You can disable it
with -nou as in:
perl Makefile.PL -nou
4. If you are manually attempting to build DBD::ODBC for use with
ActiveState Perl (ActivePerl) don't. You can use cpan like this:
cpan M/MJ/MJEVANS/DBD-ODBC-1.23_4.tar.gz
If you don't have Microsoft VC on your PATH, then this will
download and install MinGW for you (inside the Perl tree) and use
that instead.
This should work for the latest builds of all major Perl versions,
5.8.9.827, 5.10.1.1007 and 5.12.0.1200. On older versions you may
need to install MinGW with PPM "by-hand" first:
ppm install MinGW
cpan M/MJ/MJEVANS/DBD-ODBC-1.23_4.tar.gz
On ActivePerl 5.8.8 and earlier you will have to download, install
and configure MinGW and dmake manually though, so you may not want
to bother...
5. With Strawberry Perl you can install DBD::ODBC from cpan as normal
- see below.
64bit Windows
=============
I have built DBD::ODBC on win64 and the tests to SQL Server completed
successfully. However, you will need at least version 1.15 if you want
to run DBD::ODBC on win64 successfully.
If you are running a 32bit Perl on a 64bit Windows machine you will
need to be aware there are two ODBC administrators and you need to
create your DSNs with the right one. The ODBC Administrator you get to
from Control Panel, Administrative Tools, Data Sources is the 64bit
one and data sources created here will not be visible or useable from
32bit applications. The ODBC administrator you need to use for 32bit
applications can be found at X:\windows\syswow64\odbcad32.exe.
Strawberry Perl
===============
If you attempt to install DBD::ODBC with:
cpan -i DBD::ODBC
cpan in strawberry perl adds INC to the command line and that
overrides what MakeMaker attempts to add to INC. As a result, the
build will probably be missing the include path for the DBIXS.h
module.
See http://rt.cpan.org/Public/Bug/Display.html?id=32811.
Since DBD::ODBC 1.17_2 I believe we have a workaround in the
Makefile.PL that stops this happening and in later Strawberry Perl
versions the problem is fixed.
Reported issues and workarounds
===============================
Missing SQLLEN/SQLULEN definitions
==================================
MS changed the ODBC header files and introduced SQLLEN/SQLULEN types
which are required to build on 64 bit platforms so DBD::ODBC now needs
them.
If you find you are missing definitions for SQLLEN/SQLULEN you need
updated header files. See the DBD::ODBC FAQ for where you can find
them.
Visual Studio 6.0 and SDK Feb 2003
==================================
It has been reported to me that there are problems building DBD::ODBC
with VS 6 on some setups (thanks to JHF Remmelzwaal for the following
example and workaround).
Initially an nmake failed with:
C:\Program Files\Microsoft SDK\Include\.\windows.h(157) : fatal error
C1083: Cannot open include file: 'excpt.h': No such file or directory
This was solved by:
set PASTHRU_INC=-I"c:\Program Files\Microsoft SDK\include" -I"c:\Program Files\Microsoft Visual Studio\VC98\include"
which led to:
ODBC.obj : error LNK2001: unresolved external symbol __fltused
dbdimp.obj : error LNK2001: unresolved external symbol __fltused
unicode_helper.obj : error LNK2001: unresolved external symbol __fltused
ODBC.obj : error LNK2001: unresolved external symbol __imp__sprintf
dbdimp.obj : error LNK2001: unresolved external symbol __imp__sprintf
ODBC.obj : error LNK2001: unresolved external symbol _strcpy
dbdimp.obj : error LNK2001: unresolved external symbol _strcpy
dbdimp.obj : error LNK2001: unresolved external symbol __imp__strncmp
dbdimp.obj : error LNK2001: unresolved external symbol __imp__toupper
dbdimp.obj : error LNK2001: unresolved external symbol __imp__strncpy
dbdimp.obj : error LNK2001: unresolved external symbol __imp__strstr
dbdimp.obj : error LNK2001: unresolved external symbol _memcpy
dbdimp.obj : error LNK2001: unresolved external symbol _memset
dbdimp.obj : error LNK2001: unresolved external symbol _strlen
unicode_helper.obj : error LNK2001: unresolved external symbol _strlen
dbdimp.obj : error LNK2001: unresolved external symbol _strcmp
dbdimp.obj : error LNK2001: unresolved external symbol _strcat
dbdimp.obj : error LNK2001: unresolved external symbol __imp__atoi
dbdimp.obj : error LNK2001: unresolved external symbol _abs
dbdimp.obj : error LNK2001: unresolved external symbol __imp___pctype
dbdimp.obj : error LNK2001: unresolved external symbol __imp___isctype
dbdimp.obj : error LNK2001: unresolved external symbol __imp____mb_cur_max
dbdimp.obj : error LNK2001: unresolved external symbol __imp__strchr
unicode_helper.obj : error LNK2001: unresolved external symbol __imp__wcslen
LINK : error LNK2001: unresolved external symbol __DllMainCRTStartup@12
blib\arch\auto\DBD\ODBC\ODBC.dll : fatal error LNK1120: 20 unresolved externals
NMAKE : fatal error U1077: 'link' : return code '0x460'
which was resolved by adding
c:\Program Files\Microsoft Visual Studio\VC98\Lib\MSVCRTD.LIB"
to end of LDLOADLIBS in the Makefile.