본문 바로가기
카테고리 없음

gdal(1.11.1) compile on windows 8.1(x64) using visual studio 2013(update 3)

by DogBull 2014. 11. 17.

요약
금일 기준 최신 gdal library(URL:http://www.gdal.org/, 버전:1.11.1, 배포일:September 2014)를 윈도우 8.1 64비트에서 비주얼스튜디오 2013(update 3)을 이용하여 컴파일 중 발생했던 문제 해결에 대한 내용입니다.

 

목표
1. gdal library를 64비트 버전으로 컴파일 한다.
2. gdal java library를 64비트 버전으로 컴파일 한다.

 

설명
1. gdal을 다운로드(http://trac.osgeo.org/gdal/wiki/DownloadSource) 받고, 압축이 해제된 폴더로 이동한다.
(예제에서는 D:\Development\gdal\1.11.1에 압축을 해제함)

2. nmake.opt파일을 열고 아래와 같이 수정한다.(D:\Development\gdal\1.11.1에 위치함)


90라인: SWIG 실행 파일의 경로를 적어준다.(SWIG가 없으면 다운로드 받아야 함)
89,91라인: 90라인을 강제로 적용하기 위해 주석 처리함.
95라인: jdk 경로를 적어준다.(64비트 jdk경로 이며, 경로에 띄어쓰기가 있으므로 반드시 쌍따옴표로 감싼다.)
94,96라인: 95라인를 강제로 적용하기 위해 주석 처리함.
95라인: ant경로를 적어준다.

3. 비주얼스튜디오 64비트 컴파일 환경을 초기화 한다.
3-1. 윈도우 커맨드라인(cmd.exe)을 (되도록 관리자 권한으로) 실행하고, 아래의 명령을 실행한다.
%comspec% /k "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" amd64
다른 버전의 비주얼스튜디오를 사용할 경우 다른 경로명에 vcvarsall.bat를 이용한다.
3-2. 3-1의 대안으로 “VS2013 x64 네이티브 도구 명령 프롬프트”를 (되도록 관리자 권한으로) 실행한다.

4. 2번에서 수정한 nmake.opt가 위치한 디렉토리(D:\Development\gdal\1.11.1)로 이동하여 아래의 명령을 통해 gdal library를 컴파일 한다.
cd D:\Development\gdal\1.11.1
d:
nmake /f makefile.vc WIN64=YES

컴파일이 완료되면 D:\Development\gdal\1.11.1에 gdal111.dll이 생성된다.

5. 컴파일이 완료되면 swig폴더로 이동하여 아래의 명령을 통해 gdal java library를 컴파일 한다.
cd swig
nmake /f makefile.vc java

컴파일이 완료되면 D:\Development\gdal\1.11.1\swig\java에 gdalconstjni.dll, gdaljni.dll, orgjni.dll, osrjni.dll이 생성된다.

6. gdal jar library 테스트를 위해 apps폴더로 이동하여 샘플 파일을 컴파일 및 실행해 본다.
cd D:\Development\gdal\1.11.1\swig\java\apps
copy ..\..\..\*.dll
copy ..\*.dll
javac –cp ..\gdal.jar;. gdalinfo.java
java –cp ..\gdal.jar;. gdalinfo


문제해결
1. 자바 프로그램이 실행되지 않는다면, 64비트 자바에서 실행 중인가
2. 이런 저런 오류가 있다면, 이미 설정된 GDAL 관련 환경 변수가 설정되어 적용하고자 하는 DLL 이나 JAR이 적용되지 않는것은 아닌가?
3. 이것저것 귀찮다면, 
http://www.gisinternals.com/에서 컴파일 된 것을 다운 받는다. 단, 종속성이 있는 모든 dll이 함께 해야함.


참조
http://trac.osgeo.org/gdal/wiki/GdalOgrInJavaBuildInstructions