요약
금일 기준 최신 gdal library(URL:http://www.gdal.org/, 버전:1.11.1, 배포일:September 2014)를 윈도우 8.1 64비트에서 비주얼스튜디오 2013(update 3)을 이용하여 컴파일 중 발생했던 문제 해결에 대한 내용입니다.
목표
- gdal library를 64비트 버전으로 컴파일 한다.
- gdal java library를 64비트 버전으로 컴파일 한다.
설명
-
gdal을 다운로드(http://trac.osgeo.org/gdal/wiki/DownloadSource) 받고 압축이 해제된 폴더로 이동한다 예제에서는 D:\Development\gdal\1.11.1에 압축을 해제함.
nmake.opt
파일을 열고 아래와 같이 수정한다.(D:\Development\gdal\1.11.1에 위치함)- 90라인: SWIG 실행 파일의 경로를 적어준다.(SWIG가 없으면 다운로드 받아야 함)
- 89,91라인: 90라인을 강제로 적용하기 위해 주석 처리함.
- 95라인: jdk 경로를 적어준다.(64비트 jdk경로 이며, 경로에 띄어쓰기가 있으므로 반드시 쌍따옴표로 감싼다.)
- 94,96라인: 95라인를 강제로 적용하기 위해 주석 처리함.
- 95라인: ant경로를 적어준다.
-
비주얼스튜디오 64비트 컴파일 환경을 초기화 한다. 윈도우 커맨드라인(
cmd.exe
)을 관리자 권한으로 실행하고 아래의 명령을 실행한다. 또는VS2013 x64 네이티브 도구 명령 프롬프트
를 실행한다. 다른 버전의 비주얼스튜디오를 사용할 경우 다른 경로명을 그에 맞게 달리한다.1
%comspec% /k "c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" amd64
- 2번에서 수정한
nmake.opt
가 위치한 디렉토리(본 예제에서는 D:\Development\gdal\1.11.1)로 이동하여 아래의 명령으로 gdal library를 컴파일 한다.1 2 3
cd D:\Development\gdal\1.11.1 d: nmake /f makefile.vc WIN64=YES
컴파일이 완료되면 D:\Development\gdal\1.11.1에 gdal111.dll이 생성된다.
- 컴파일이 완료되면 swig폴더로 이동하여 아래의 명령을 통해 gdal java library를 컴파일 한다.
1 2
cd swig nmake /f makefile.vc java
컴파일이 완료되면 D:\Development\gdal\1.11.1\swig\java에 gdalconstjni.dll, gdaljni.dll, orgjni.dll, osrjni.dll이 생성된다.
- gdal jar library 테스트를 위해 apps폴더로 이동하여 샘플 파일을 컴파일 및 실행해 본다.
1 2 3 4 5
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
문제해결
- 자바 프로그램이 실행되지 않는다면, 64비트 자바에서 실행 중인가
- 이런 저런 오류가 있다면, 이미 설정된 GDAL 관련 환경 변수가 설정되어 적용하고자 하는 DLL 이나 JAR이 적용되지 않는것은 아닌가?
- 이것저것 귀찮다면, http://www.gisinternals.com/에서 컴파일 된 것을 다운 받는다. 단, 종속성이 있는 모든 dll이 함께 해야함.
참조
http://trac.osgeo.org/gdal/wiki/GdalOgrInJavaBuildInstructions