ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • CGAL 소개 및 설치
    Programming 2012. 8. 10. 12:08

    CGAL(Computational Geometry Algorithm Library : http://www.cgal.org/)


    다운로드 페이지: http://www.cgal.org/download.html


    한번 다운받아서 설치해본 결과 기본 기능이야 Boost 정도만 설치하면 되지만 다른 기능들 특히 현재 목표로 하고자 하는 


    "Approximation of Ridges and Umbilics on Triangulated Surface Meshes

    (http://www.cgal.org/Manual/latest/doc_html/cgal_manual/Ridges_3/Chapter_main.html)"

    의 기능을 사용하기 위해서는 CGAL 3.3 이상이어야 하며 

    "Depends on: Solvers as Eigen, or Lapack and Blas"

    이라고 한다.

    한번 시도했는데 실패했으므로...OTL...

    다시 차근차근 정리하며 도전!

    1. 다운로드 페이지http://www.cgal.org/download.html

    각 항목들을 채워주고 라이센스에 동의한 이후 다운로드 링크 페이지로 이동, 최근 버전 중 안정성을 위해 바로 직전 버전이 가장 좋다. 경험상...새로운 버전은 버그의 향연이 펼쳐질 가능성이..


    2. 설치를 위한 프로그램

    컴파일러로 빌드 가능한 형태의 파일을 생성해주는 프로그램이다. 오픈소스에선 각 플랫폼에 독립적으로 릴리즈 하기 위해 많이 쓰인다. 전에 관련 포스팅을 했던가...

    간단히 말해 배포된 소스코드를 통해 MS VS Solution 파일을 만들수 있다. 설정도 알아서 잡아주고...

    2.2 STL

    Standard Template Library이며, 윈도우 계열의 개발자는 별도로 설치안해도 깔려 있을 것이다.


    Boost는 이래저래 많은 오픈소스들에서 사용하는 라이브러리다. 따로 공부한적이 없어서 잘은 모르지만 성능이 뛰어난 걸로 알고있다.

    boost_thread 라이브러리가 필요하며, 윈도우 계열 개발자 분들은 
    위의 링크에서 boost_pro를 받아서 설치하자. 제일 속편하다. 
    소스코드 버전을 받아 해볼랬는데 짜증나서 때려쳤다.


    The usage of Eigen allows to remove lapack, blas and Taucs from the list of third party libraries required by some Cgal packages. Note that the version 3.1 (or greater) of Eigen is required.  


    이건 완전히 처음 들어보는 라이브러리인데, 일단 install guide 상으로는 이걸 설치하면 다른 종속 라이브러리인 LAPACK, BLAS, TAUCS가 필요없다고 하니 반드시! 3.1 이상의 버전을 받자.



      As Visual C++ is not properly supported by the Gmp and Mpfr projects, we provide precompiled versions of Gmp and Mpfr, which can be downloaded with the installer CGAL-4.0.2-Setup.exe.


    Install Guide를 보면 GMP와 MPFR에 대해서는 위와 같이 나와있다. 어차피 VS C++은 지원안한다고 하니 패스하자.


    3. Build 

    일단 정리한대로라면 현재 설치해야하는 라이브러리는 Boost, Eigen 정도가 전부다. Boost는 pro를 받았으면 그냥 설치하면 알아서 잡히고, 문제는 Eigen인데, 일단 CGAL의 셋업파일부터 열어보자.



    일단 LPACK, TAUCS의 precompiled libs에 체크를하자. Eigen을 설치하면 된다고 했었는데, 생각보다 잘 연동이 안되니...


    이후는 기본값으로 진행하면 별 문제는 없다.


    자, 그럼 Eigen도 받은 압축을 풀어보자!


    풀어서 들어가보면 알겠지만...이놈도 CMake다.. 


    그러나! Eigen은 빌드를 할필요가 없단다! 



    Eigen is a header-only template library. Only the directory containing the header files of Eigen 3.1 (or greater) is needed.  


    아싸! 지화자! ....

    사실 위에 내용을 못봐서 지난번엔 빌드했었다...더럽게 오래걸리더라...


    자, 그럼 CMake로 CGAL 솔루션 파일을 생성해봅시다. 

    우선 환경변수에 EIGEN3_INC_DIR 변수를 만들고 Eigen의 압축을 푼 경로를 써주자.

    혹시 모르니 Path에도 %EIGEN3_INC_DIR%; 을 추가해주자

    다음 CMake를 실행시켜서 CGAL의 솔루션 파일을 생성한다.

    Configure를 눌러 일단 설정을 잡자



    이 다음은 입맛대로 설정을 잡자(귀찮아서가 아님 절대...)

    다시 셋팅을 살펴보고 Config

    근데 Eigen을 못찾는다...환경변수 넣었는데...

    일단 수동으로 Eigen의 압축을 푼 폴더를 셋팅값에 넣는다.(이, 이러면 안되는데!!!)

    Generate를 누르고

    생성된 솔루션 파일을 연다.

    빌드를 해봅시다!

    제발 되라 제발 되라 제발 되라 제발 되라 제발 되라 제발 되라 제발 되라 제발 되라 제발 되라 제발 되라 제발 되라 제발 되라 !!!(오류 목록 창 열고 기도하는중)

    에러가 뙇!

    진정하자...그래 환경변수! 환경변수를 셋팅 안했구나 망할...

    과연 문제가 해결될지는 모르겠는데 BOOST_ROOT 환경변수를 만들고 설정한다.

    설치 가이드 상에서 Boost 관련 모든 환경변수 설정해주어 다시 CMake를 돌리니 Core를 제외한 라이브러리 빌드 성공

    추가: 모든 빌드에 성공했다. 원인은 CMake 설정의 문제였던 것으로 보인다. static과 관련된 설정은 하지말것(Boost 설정과 충돌이 나는 듯 한데 정확한 원인은 모르겠다.)
    빌드시 오류가 나는데 Core 모듈만 오류가 난다라고 하면 CMake의 설정을 잘 살펴가며 다시 해볼것
    또한 솔루션을 띄운뒤에 전체 빌드를 하지 말고 CGAL, Core 순으로 해당 프로젝트만 먼저 빌드를 해볼것


Designed by Tistory.