'CGAL 설치'에 해당되는 글 1건

  1. 2010.01.07 CGAL 라이브러리 사용법 (Windows XP/Vista with Visual Studio 2005/2008) 4
posted by cimple 2010. 1. 7. 07:00



CGAL (Computational Geometry Algorithms Library) 은 오픈 소스 기반의 강력한 Geometry Library 입니다. 하지만 조금 복잡한 설치 과정 때문에 설치에 어려움을 겪는 분들이 많은 것 같습니다. 제가 성공했던 설치 과정과 구성을 말씀드리고, 조금이나마 손쉽게 CGAL 을 사용할 수 있도록 하는 바램으로 포스팅을 해 봅니다.



CGAL 라이브러리 설치하기


1. 필요한 파일 다운로드

(1) 먼저 CGAL 을 다운로드 받습니다. 가장 간편한 것은 Windows install 버전을 받는 것입니다.
아래의 링크에서 CGAL 최신 버전의 파일을 받습니다. 제 경우에는 CGAL-3.5.1-Setup.exe 파일을 다운로드 받았습니다.

CGAL 다운로드

(2) Cmake 를 다운로드 받습니다. 역시 Windows install 버전을 받습니다. 제 경우에는 cmake-2.8.0-win32-x86.exe 파일을 다운로드 받았습니다. 아래 링크에서 다운로드 받습니다.

Cmake 다운로드

(3) QT 를 다운로드 받습니다. 아래 링크에서 다운로드 받을 수 있습니다. 제 경우에는 4.6.0 버전입니다.

QT 다운로드

(4) MinGW 를 다운로드 받습니다. 아래 링크에서 다운로드 받을 수 있습니다. 제 경우에는 5.1.6 버전입니다.

MinGW 다운로드

(5) Boost 를 다운로드 받습니다. 아래의 링크에서 Windows install 버전을 다운로드 받습니다.

Boost install version 다운로드


뭐가 이렇게 필요한 게 많어? 라고 생각하실 수도 있습니다. CGAL 을 설치하는 데 번거로운 것이 이러한 다양한 프로그램들을 순서대로 잘 설치하고, 설정을 해 주는 것이 생각보다 까다롭기 때문입니다.

자, 이제 필요한 파일은 모두 다운로드 받았습니다. 이제 본격적으로 설치를 해 보도록 하겠습니다.

설치에 앞서서 한가지 당부 말씀은, 라이브러리 설치에 익숙하지 않으신 분들은 웬만하면 과정을 그대로 따라하시고, 설치 경로명까지 일치시켜 주셨으면 합니다. 설치 경로명이 조금씩 달라지거나, 경로명 안에 한글 혹은 공백이 있으면 오류가 발생하는 경우가 빈번하기 때문입니다.

2. Cmake 인스톨

(1) 다운로드 받은 cmake 파일을 실행시켜서 인스톨을 시작합니다. 인스톨을 진행하다 보면 다음과 같이 인스톨 옵션을 묻는 화면이 나옵니다.


보시는 바와 같이 system PATH 에 cmake 를 등록하는 메뉴를 선택합니다. 그리고 계속 다음> 을 눌러서 cmake 를 설치합니다.

(2) 그리고 나서 환경 변수에 등록을 해야 합니다. 환경 변수에 등록하는 방법은 '내 컴퓨터' 에서 우클릭>'속성' 에 들어갑니다.



다음 '고급' 탭 안에 있는 '환경 변수' 를 클릭합니다.



환경 변수 윈도우를 보면 아래에 '시스템 변수' 메뉴 중에서 PATH 를 찾아서 누르고 '편집' 을 누릅니다.


그럼 이제까지 등록한 변수들이 나오고, 새로운 시스템 변수를 추가할 수 있는 '시스템 편수 편집' 윈도우가 나타납니다. 여기에 환경 변수를 추가해 주면 되는 것입니다. 환경 변수를 추가할 때에는 구분이 되는 세미콜론(;) 을 끝에 붙여 주면 됩니다.



여기에 cmake 의 바이너리 폴더 주소를 환경 변수로 등록해 줍니다. 저 같은 경우에는 C:\Program Files\CMake 2.6\bin 을 추가시켜 주었습니다.


3. Boost 인스톨

Boost 는 설치 과정에 약간 귀찮은 부분들이 있습니다. 아마도 Boost 가 강력하기는 한데, 오랜 시간에 걸쳐 많은 사람들에게 의해 만들어진 라이브러리이다 보니 이러한 과정들이 필요한 것 같습니다.

(1) Boost 의 인스톨 버전을 다운로드 받았으니, 이것을 가지고 설치를 해 줍니다. 설치 과정중에 보면 다음과 같이 설정을 묻는 화면이 나오는데, 자신이 사용할 컴파일러를 선택하고, 나머지는 전부 선택합니다.


다음에 나오는 화면에서, Boost 의 각 콤포넌트들을 설치하는 옵션 선택 화면이 나옵니다. 저 같은 경우에는 아래 그림처럼 모든 옵션에 대해서 VC9.0(Visual Studio 2008) 으로 선택해 주고 설치하였습니다.


그리고 다음의 경로로 install 해 줍니다. 제 경우에는 C:\boost\boost_1_38 입니다.




(2) boost 의 바이너리 폴더를 아까 cmake 에서 했듯이 환경 변수에 등록해줍니다. 제 경우에는 C:\boost\boost_1_38\bin 입니다. 





4. MinGW 인스톨

(1) MinGW 를 인스톨하는 방법은 어렵지 않습니다. 그냥 다운로드 받은 MinGW 설치 파일을 실행시키고, 별다른 옵션 설정 없이 Next 연타로 설치하시면 됩니다.

(2) MinGW 의 바이너리 폴더를 환경 변수에 등록시켜 줍니다. 제 경우에는 C:\MinGW\bin 입니다.


5. QT 인스톨

한가지 말씀드릴 사항이 있습니다! QT 를 인스톨하는 과정은 굉장히 오래 걸립니다. 제 경우에는 5시간(!) 이 소요되었습니다. 따라서 이 작업을 하실 때에는 자리를 오랫동안 비우시거나 잠자러 가기 전에 하실 것을 권합니다.

(1) 다운로드 받았던 QT 설치 파일을 실행시킵니다.

(2) Next 연타를 하다보면 MinGW 와 관련하여 이런 경고메시지가 뜨는 것을 알 수 있습니다. 그러나 위에서 MinGW 를 잘 인스톨 하셨다면 이 경고메시지는 무시해도 상관 없습니다. 그냥 continue 하면 됩니다.




(3) 다음은 Visual Studio Command Prompt 를 실행시킵니다. 제 경우에는 시작>모든 프로그램>Visual Studio 2008>Visual Studio Tools>Visual Studio 명령 프롬프트  로 실행시켰습니다.

(4) Visual Studio 명령 프롬프트를 실행시킨 다음, cd 명령을 이용해서 QT 폴더로 이동합니다.


(5) 다음 configure 를 입력합니다.
그 다음 묻는 것이 버전마다 조금씩 달라질 수는 있는데, 제 경우에는 먼저 Open source 로 이용할 것이라는 의미의 'o' 를 입력한 다음, 라이선스에 동의하는 'y' 를 입력합니다. 이 과정도 약간의 시간이 걸립니다.



(6) 완료되면, 바로 이 과정이 5시간이 넘게 걸리는 과정입니다. 커맨드 라인에 'nmake' 를 입력하고 난 후, 컴퓨터를 떠나가면 됩니다. 저도 자고 오니 완료되어 있더군요.

한숨 자고 오세요




(7) 완료되면, 환경 변수에 QT 의 바이너리 폴더를 등록시켜 줍니다. 제 경우에는 C:\Qt\4.6.0\bin 입니다.

(8) 컴퓨터를 다시 재부팅해 줍니다. 지금 이 포스트를 잠시 메모해 두고 컴퓨터를 껐다 켜셔야겠죠?



6. CGAL 인스톨

(1) 이제야 CGAL 인스톨입니다;;; 다운로드 받았던 CGAL 인스톨 버전을 실행시켜서 인스톨을 시작합니다.

(2) 다음과 같은 설정 화면이 나오면 원하는 버전의 컴파일러를 선택하고, 모두 선택한 다음에 next 를 해 줍니다.


(3) 이번 과정은 매우 중요한 과정입니다. 제가 한번 완전히 CGAL 을 설치하고 소스코드 컴파일까지 성공했음에도 실행파일에 문제가 생기는 이유는 이 과정에서 문제가 있었을 가능성이 큽니다.

CGAL 설치 폴더를 설정하는데, 보통 그림과 같이 Program Files 에 그대로 설치해버리기 쉽습니다. 그런데 CGAL 홈페이지에서도 이 설치경로에 공백이 절대로 들어가지 않아야 한다고 말합니다.

이렇게 설치하면 안됩니다.


그래서 아래와 같은 경로에 설치할 것을 권장합니다. 중요한 것은 경로명에 공백이 포함되어서는 안 된다는 것입니다.

(4) 다음은 Next 연타로 인스톨을 해 줍니다.

(5) 환경 변수에 QT 의 루트 디렉토리를 등록해 줍니다. 제 경우에는 C:\Qt\4.6.0 입니다.

(6) 환경 변수에 Boost 의 루트 디렉토리를 등록해 줍니다. 제 경우에는 C:\boost\boost_1_38_0 입니다.

(7) 시작>실행>cmd 로 명령 프롬프트 창을 띄웁니다. 그리고 cd 명령어를 이용해서 CGAL 폴더로 이동합니다.

(8) cmake-gui . (한칸 띄우고 마침표) 를 입력해서, Cmake gui 를 실행시킵니다.

(9) Cmake 가 실행되면, 왼쪽 아래의 configure 버튼을 눌러서 원하는 버전의 컴파일러를 선택합니다. 저 같은 경우에는 Visual Studio 2008 을 선택했습니다.

(10) 제 경우에는 해당이 없었지만, Cygwin 이 인스톨되어 있는 경우에는 configure 하는 과정에서 GMP 나 MPFR 의 경로를 제대로 찾지 못하는 경우가 있습니다. 이런 경우에는 GMP 탭 안의GMP_INCLUDE_DIR 과 MPFR_INCLUDE_DIR 을 C:\CGAL\CGAL-3.5.1\auxiliary\gmp\include 폴더로 설정해 줍니다. (버전명은 당연히 제가 현재 인스톨한 CGAL 버전이므로, 달라질 수 있습니다.)

(11) CMAKE 탭 안에 있는 CMAKE_BUILD_TYPE 이 Release 로 되어 있다면, 더블클릭해서 Debug 로 고쳐 넣어 줍니다.

(12) WITH 탭 안에 있는 WITH_demos 와 WITH_examples 는 필요하다면 체크해서 함께 컴파일해서 사용할 수 있습니다. 저 같은 경우에는 체크했지만, 빌드 시간을 좀 더 오래 걸리게 하는 주범인 듯 합니다.

(13) Configure 버튼을 Generate 버튼이 활성화 될 때까지 계속해서 눌러 줍니다.

(13-1) 이 부분에서, boost 와 관련한 오류가 발생하는 것을 확인했습니다.
boost 의 라이브러리 폴더를 찾지 못한다고 하면서,

Boost_LIBRARYDIR 과
BOOST_ROOT 를 추가해 보라고 지시하는 것을 확인했습니다.

cmake 에서 '+Add Entry' 버튼을 누른 다음, 이름은 위에서 지시한 대로(Boost_LIBRARYDIR 과 BOOST_ROOT), Type 은 Path, Value 는 해당 경로(저의 경우 Boost_LIBRARYDIR 은 C:\boost\boost_1_38_0\lib, BOOST_ROOT 는 C:\boost\boost_1_38_0 ) 를 찾아 주어서 각각 추가해줍니다.

(13-2) Generate 버튼이 활성화되면 Generate 버튼도 눌러 줍니다.

(14) 성공적으로 빌드되면 솔루션 파일이 C:\CGAL\CGAL-3.5.1 에 생성됩니다.


(15) 솔루션 파일을 열어서 Visual Studio 를 실행시키고, cmake 를 닫습니다.

(16) Visual Studio 가 실행되면, 빌드(Build) 메뉴에서 솔루션 정리(Clean Solution) 를 눌러서 솔루션을 정리하고, 다시 빌드(Build) 메뉴의 솔루션 다시 빌드(Rebuild Solution) 버튼을 눌러서 다시 빌드해 줍니다.

(17) 됐습니다! 이제 CGAL 라이브러리 설치가 완료되었습니다.

만쉐!







환경 변수 설정 확인


제 환경 변수 설정은 다음과 같습니다. (통째로 복사했습니다;)

C:\Program Files\Autodesk\Maya2009\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Autodesk\Backburner\;C:\Program Files\Common Files\Autodesk Shared\;C:\APM_Setup\Server\Apache\bin;C:\APM_Setup\Server\MySQL5\bin;C:\APM_Setup\Server\PHP5;C:\Program Files\CMake 2.6\bin;C:\boost\boost_1_38\bin;C:\MinGW\bin;C:\Qt\4.6.0\bin;C:\CGAL\CGAL-3.5.1\auxiliary\gmp\lib;C:\Qt\4.6.0;C:\boost\boost_1_38;



Visual Studio Project 설정

1. Visual Studio 의 도구>옵션 에서 '프로젝트 및 솔루션' 탭의 'VC++ 디렉터리' 에 들어갑니다.

2.  포함 파일에 다음의 경로들을 추가시켜 줍니다.

C:\boost\boost_1_38
C:\CGAL\CGAL-3.5.1\include
C:\Qt\4.6.0\include
C:\CGAL\CGAL-3.5.1\auxiliary\taucs\include
C:\CGAL\CGAL-3.5.1\auxiliary\gmp\include



3. 라이브러리 파일에 다음의 경로들을 추가시켜 줍니다.

C:\boost\boost_1_38\lib
C:\Qt\4.6.0\lib
C:\CGAL\CGAL-3.5.1\lib
C:\CGAL\CGAL-3.5.1\auxiliary\taucs\lib
C:\CGAL\CGAL-3.5.1\auxiliary\gmp\lib



4. 다음은 개별 프로젝트의 설정입니다. 일단 프로젝트를 생성할 때, 저는 테스트를 위해서 Win32 콘솔 응용 프로젝트 > 빈 프로젝트 로 만들었습니다. 그리고 C++ 파일 하나를 새 항목으로 추가해 줍니다.

5. 프로젝트에서 우클릭으로 '속성' 창을 엽니다.



6. C/C++ > 일반(General) 탭에서 추가 포함 디렉터리(Additional Include Directories) 에서 다음을 추가해줍니다.


C:\Qt\4.6.0\include\QtCore
C:\Qt\4.6.0\include\QtGui
C:\Qt\4.6.0\include
C:\Qt\4.6.0\include\ActiveQt
debug
.
C:\Qt\4.6.0\mkspecs\win32-msvc2008


위에서  debug  나 콤마는 그대로 입력해주면 되고, msvc2008 도 현재 사용하고 있는 Visual Studio 의 버전대로 선택해서 고쳐 주면 됩니다. 그리고 QT 의 디렉토리들은 사용자가 필요한 기능을 include 해서 사용하면 되는 구조로 되어 있으므로, 현재 include 한 것은 초보자들에게 필요한 폴더들입니다.



7. 다음, 링커(Linker)>입력(Input)>추가 종속성(Additional Dependancies) 에서 다음을 추가해 줍니다.


C:\Qt\4.6.0\lib\qtmaind.lib
C:\Qt\4.6.0\lib\QtGuid4.lib
C:\Qt\4.6.0\lib\QtCored4.lib
opengl32.lib


8. 이제 Visual Studio 의 셋팅도 끝났습니다.




TEST


그럼 CGAL 이 잘 돌아가는지 테스트 해 보도록 하겠습니다.

바로 위에서 프로젝트를 만들었다면, 아래의 소스 코드를 복사해서 붙여넣기 해 봅시다.


#include <iostream>
#include <boost/format.hpp>
#include <QtGui>
#include <CGAL/Qt/GraphicsViewNavigation.h>
#include <QLineF>
#include <QRectF>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QGraphicsScene scene;
scene.setSceneRect(0,0, 100, 100);
scene.addRect(QRectF(0,0, 100, 100), QPen(QColor(255,0,0)));
scene.addLine(QLineF(0,0, 100, 100));
scene.addLine(QLineF(0,100, 100, 0));
QGraphicsView* view = new QGraphicsView(&scene);
CGAL::Qt::GraphicsViewNavigation navigation;
view->installEventFilter(&navigation);
view->viewport()->installEventFilter(&navigation);
view->setRenderHint(QPainter::Antialiasing);
view->show();
return app.exec();
}


그리고 나서, 컴파일하고 실행시켜 봅니다. 다음과 같은 창이 뜨면 성공입니다.






까다로운 설치 과정이지만, 그만큼 CGAL 은 훌륭한 기능들을 제공하고 있습니다. 아무쪼록 이 포스팅이 CGAL 설치에 어려움을 겪는 분들에게 조금이나마 도움이 되었으면 하는 바램입니다.

감사합니다.




ThEnd.