-
Notifications
You must be signed in to change notification settings - Fork 443
/
windows.txt
175 lines (121 loc) · 7.79 KB
/
windows.txt
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
.. _building_windows:
======================
Building Under Windows
======================
Most Users
----------
If you just want to build PDAL so you can
a. use the utilities or
b. investigate PDAL integration
c. test / fix / extend the library and
you are OK with doing all this with a 32 bit compiler, check the "Prerequisites" and follow the "Basic Build Steps" below.
Advanced Users
--------------
If your needs go beyond this, then check the "Prerequisites" and use the "Advanced Build Steps" below as a guide to configuring the library.
Prerequisites
-------------
- Ensure you have git. We used version 1.7.3.1.msysgit.0 from http://code.google.com/p/msysgit
- Ensure you have a Visual Studio 2010 environment setup. We used VStudio 2010 Premium.
- Ensure you have cmake. We used version 2.8.4 from http://www.cmake.org
The steps below assume that these tools are available from your command line. For Git and CMake, that's just adding them to your %PATH%. For VStudio,
you need to run "vsvars32.bat" ("Microsoft Visual Studio 10.0\\Common7\\Tools\\vsvars32.bat")
Basic Build Steps
-----------------
Most users can use this procedure to build PDAL on Windows.
We satisfy all dependencies using OSGeo4W and use the Boost subset that is included with the library.
1. Install OSGeo4W (http://trac.osgeo.org/osgeo4w/) using the "Advanced Install" option and include the following: gdal-dev, laszip, libxml2, iconv.
.. figure:: media/OSGeo4WInstallAdvanced.png
Install from Internet
.. figure:: media/OSGeo4WInstallFromInternet.png
Leave the "Root Directory" for the installation unchanged.
.. figure:: media/OSGeo4WInstallRootDirectory.png
Select "gdal-dev".
.. figure:: media/OSGeo4WInstallGDALDev.png
Select "laszip".
.. figure:: media/OSGeo4WInstallLASZip.png
Select "libxml2".
.. figure:: media/OSGeo4WInstallLibXML2.png
Select "iconv".
.. figure:: media/OSGeo4WInstallIconv.png
There are some other required dependencies (libtiff, libgeotiff, oci) but they are installed by default.
2. Get the source code for PDAL:
::
c:\dev> git clone https://github.com/PDAL/PDAL.git .
3. **From the root of your PDAL tree**, run "config.bat". This will create the VStudio solution file and .vcxproj files.
::
c:\dev\PDAL> config.bat
4. Start Visual Studio and open PDAL.sln.
5. Note that you'll need to include the %OSGeo4W%/bin directory in your %PATH% so that the dependent DLLs are available at run time.
Advanced Build Steps
--------------------
Advanced users can use this procedure to customize their PDAL build on Windows.
This enables the use of custom-built external libraries to satisify situations (including x64 support) where using OSGeo4W is inadequate.
1. Aquire and stage the required dependent libraries.
PDAL depends on the following external libraries. You'll need to get them and build them (or perhaps, download prebuilt binary packages).
- Boost (get version 1.4.8 or later from http://boost.org) [ required ]
- GDAL (get version 1.6 or later from http://gdal.org) [ optional ]
- LASZip (get version 1.0.1 or later from http://laszip.org) [ optional ]
- libxml2 (http://libxml2.org) [ optional ]
- iconv (http://www.gnu.org/software/libiconv/) [ optional (required by libxml2) ]
- oci (optional, http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html)
- libtiff (optional)
- libgeotiff (optional)
One option for all dependencies except Boost is OSGeo4W (free, win32 installer, no x64 -- see "Basic Build Steps" above).
Boost Build Notes
-----------------
Options for Boost include might include BoostPro (free win32 installer, no x64) or the internal "BCP'ed" extract in PDAL.
We say "might" because PDAL requires Boost version 1.48 or later and at this writing that's not supported by BoostPro.
If you need to build Boost from source, the following notes will be helpful.
Boost libraries include an "ABI" description as part of the name.
For example
::
"libboost_filesystem-vc100-mt-gd-1_48.lib"
^^ This is the <abi-tag>
<abi-tag> - This is a string of one or more characters. For us, the characters of interest are s, g, d.
s - indicates that the library is statically linked to the C++ Standard Library and Runtime Library.
g - indicates that the debug versions of the standard and runtime support libraries are linked against. On a typical Windows installation you will get a debug version of the runtime libraries to link against, but this need not be the case on Unix boxes.
d - indicates all debug symbols are available in the library, no inlining and optimization has been done while building the code.
This is particularly important on Windows. Unlike other platforms, CRT configuration (debug vs release and staticly linked vsshared), needs to match you PDAL configuration.
After you get the Boost archive (source) from http://www.boost.org from the root of the boost distribution run "bootstrap.bat" and then "b2" with the appropriate options.
Examples
Our default release configuration uses /MD, so you want the release shared CRT, like "libboost_filesystem-vc100-mt-1_48.lib"::
c:\utils\boost_1_48_0>.\bootstrap.bat
c:\utils\boost_1_48_0>.\b2 variant=release link=static threading=multi runtime-link=shared stage
Our default debug configuration uses /MDd, so you want the debug shared CRT, like "libboost_filesystem-vc100-mt-gd-1_48.lib"::
c:\utils\boost_1_48_0>.\bootstrap.bat
c:\utils\boost_1_48_0>.\b2 variant=debug link=static threading=multi runtime-link=shared stage
Finally, we've seen problems with b2.exe if the path includes some paths that are quoted ("c:\\Program Files (x86)\\doxygen\\bin"). You can unquote or remove them from the %PATH% while building Boost.
2. Having staged the above libs, you need to specify where they are by editing the appropriate lines in the "config.bat" file.
Each dependency has a short section of the config.bat file. Check these are specified correctly. For example::
:: LASZIP
set LASZIP_ENABLED=ON
set LASZIP_LIBRARY=%DEV_DIR%\laszip\bin\Debug\laszip.lib
set LASZIP_INCLUDE_DIR=%DEV_DIR%\laszip\include
3. While you're still in config.bat, configure the "Generator" for CMake.
::
:: Pick your Generator. NMake will pick up architecture (x32, x64) from your environment
rem set GENERATOR="NMake Makefiles"
rem set GENERATOR="Visual Studio 10 Win64"
set GENERATOR="Visual Studio 10"
set BUILD_TYPE=Release
rem set BUILD_TYPE=Debug
4. Run "config.bat" in the PDAL directory. This will create the VStudio solution file and .vcxproj files.
::
c:\dev\PDAL> config.bat
5.Start Visual Studio and open PDAL.sln (or if you picked "NMake Makefiles", run NMake).
Testing
-------
Set pdal_test as the default/startup application in Visual Studio
Run with debug (F5)
Troubleshooting
---------------
* Missing liblas.dll - double check that ``C:\OSGeo4W\bin`` is on your system PATH variable
* libtiff.dll errors - double check that other versions of the lib are not on the path. For example, ArcGIS installs a version of libtiff that is not compatible.
* "ERROR 4: Unable to open EPSG support file gcs.csv" or GDAL_DATA variable errors - Set GDAL_DATA system variable to ``C:\OSGeo4W\share\gdal``
* PROJ errors - Set PROJ_LIB system variable to ``C:\OSGeo4W\share\proj``
* link failures due to _ITERATOR_DEBUG_LEVEL mismatches between (external) boost and PDAL. Most likely problem is that you are mixing Release and Debug libs (e.g. PDAL is debug but Boost is release). You can also set _ITERATOR_DEBUG_LEVEL=0 as in Project Pages / Configuration Properties / C,C++ / Preprocessor / Preprocessor Definitions.
To Build the SWIG Bindings
--------------------------
Follow the instructions in csharp/README.txt. Be sure and follow the note
about modifying std_basic_string.i and setting the PDAL_SWIG_BOOST_HOME
env var.