먼저 필요 준비물은 제목에 적혀져 있는 바와 같이 (버전은 본인 자유이나 설정이 약간 다를 수 있음)


1. CMAKE-gui 3.5.2

2. Qt 5.6 

3. Visual studio 2013

이다.


필자는 위에 해당하는 버전을 사용하였다. 


CMAKE는 크로스 플랫폼으로 쉽게 만들기 위해서 사용하였다.


각각의 파일은 해당 프로그램의 공식 페이지에 들어가서 받으면 된다. visual studio community 버전은 무료다.

원하는 환경(32, 64bit)의 프로그램을 다운받아 설치하면 된다.


귀찮으신 분들을 위해 

https://cmake.org/download/

https://www.qt.io/download-open-source/

https://www.visualstudio.com/ko-kr/downloads/download-visual-studio-vs.aspx


링크를 준비했다. 다운받아 설치만 하자.


이제 진짜 빌드를 해야할 VTK 소스를 받아야 한다.

http://www.vtk.org/download/

링크에 들어가면 받을 수 있고 필자는 그냥 가장 최신 버전 7.0.0 버전을 받았다. (걍 뭣모르고 좋은게 좋은거라 생각하며... 최신버전 설치....)


CMAKE와 qt는 그냥 인스톨 버전으로 설치를 하면 된다.


폴더 구조는 PATH를 보기 편하게 하려고 C:드라이브 아래에 각각 qt와 vtk 폴더를 만들어서 진행하였다.

qt는 32bit와 64bit 모두 설치할 예정이라 폴더명을 특별히 버전.32bit로 지정하였다. VTK 폴더는 다운받은 압축파일을 해제하여 C드라이브 아래에

vtk 폴더와 그 안에 src 폴더를 생성한 뒤 복사했다.


필자의 폴더 위치는 아래와 같다.

Qt :     C:\Qt\Qt5.6.0.32bit

VTK :   C:\vtk\src\VTK-7.0.0


CMAKE로 빌드를 해보자. 여러 다른 블로그들을 참고 하였지만 각자 다 버전이 달라서 애매한 부분이 있다.

일단 CMAKE-gui를 열어보자.

Where is the source code 칸에는 위에 있는 vtk 소스가 있는 폴더를 적어 준다.

Where to build the binaries 칸에는 빌드한 결과가 저장될 폴더를 지정해 준다. 필자는 C:\vtk\bin.qt5.32bit로 하였다.

이후 configure를 눌러 컴파일러를 선택하고 디폴트 설정으로 마무리한다. (필자는 Viusal studio 12 2013으로 하였다. 32비트로 할거라서)


처음에 누르면 아마 에러가 날것이다. 당연한 거다. 추가해야할 entry가 많이 있기 때문. Grouped 설정을 눌러 group 별로 보기 편하게 한다.

본인은 이미 CMAKE를 한 뒤라 순서가 약간 다를 수도 있지만 양해 바란다.


일단 VTK_GROUP_Qt 에 체크한다. 다시 configure 클릭

VTK_QT_VERSION 에 5 입력. (필자는 5.6 버전이므로 5입력. 4.x 쓰시는 분들은 4 입력). 다시 configure

QT_QMAKE_EXECUTABLE 에 qmake 바이너리 FILEPATH입력. 필자의 경우 : C:\Qt\Qt5.6.0.32bit\5.6\msvc2013\bin\qmake.exe) 다시 Configure 클릭

이제 새로운 Entry를 추가해야 한다. Add Entry를 눌러서 CMAKE_PREFIX_PATH의 PATH를 설정해 주자. 

(필자의 경우 C:\Qt\Qt5.6.0.32bit\5.6\msvc2013 ) 다시 configure 클릭하면 아마 더이상 경고창이 뜨지 않을 것이다.


  • VTK_Group_Qt=1 (Boolean Checked)
  • VTK_QT_VERSION=5
  • QT_QMAKE_EXECUTABLE=C:/Qt/Qt5.6.0.32bit/5.6/msvc2013/bin/qmake.exe
  • CMAKE_PREFIX_PATH=C:/Qt/Qt5.6.0.32bit/5.6/msvc2013



최종 CMAKE 설정은 아래와 같다. 빨간색은 이미 빌드후에 다시 열어서 그렇게 보이는 것이니 참고만 하길 바란다. 





자 이제 비주얼스튜디오 프로젝트가 생성된 폴더로 가보자. (각자가 CMAKE 설정할 때 지정했던 폴더)

VTK.sln을 눌러 비주얼 스튜디오 솔루션을 열어보자.

수많은 프로젝트들이 있는데 그 중 ALL_BUILD가 bold체로 보일 것이다.



이후 릴리즈 모드로 빌드 시켜주면 끝!!










참고 블로그 : http://benjaminhopfer.com/2014/08/24/qt-5-vtk-6-and-visual-studio-development-environment/

(32bit / 64bit 모두 빌드하는 방법 설명)








 .off 확장자를 가지는 파일은 3d OFF(Object File Format) 이다. 


.off 파일을 열 수 있는 여러 프로그램들이 있겠으나 여기서는 무료로 제공하는 툴인 MeshLab을 이용한다.


사이트 : http://meshlab.sourceforge.net/



MeshLab

MeshLab is an open source, portable, and extensible system for the processing and editing of unstructured 3D triangular meshes. 
The system is aimed to help the processing of the typical not-so-small unstructured models arising in 3D scanning, providing a set of tools for editing, cleaning, healing, inspecting, rendering and converting this kind of meshes. 

홈페이지에도 잘 나와있듯 오픈소스 프로그램이다.

메인 페지이 중앙에 있는 Download Latest ~~를 클릭해서 운영체제에 맞는 파일을 다운 받는다.


설치는 클릭하다보면 알아서 잘 되고~~ 실행하면 아래와 같이 실행된다. 구 형태의 골프공 모양이다.



MPIR Library는 The Multiple Precision Integers and Rationals Library 의 약자다.


MPIR을 사용하기 위해서는 먼저 yasm을 설정해줘야한다.


전에 올린 글에 설명이 되어 있으니 아래의 링크를 참고하여 visual studio에 yasm을 설치하자.

2016/05/12 - [CS/환경설정] - VISUAL STUDIO에 YASM 사용하기 (Using yasm with VISUAL STUDIO)



http://lecnote.tistory.com/entry/VISUAL-STUDIO%EC%97%90-YASM-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0-Using-yasm-with-VISUAL-STUDIO


Now, get MPIR from below link.

이제 MPIR 라이브러리를 다운 받자.


http://mpir.org/index.html#release


현재(16년 5월 12일) 필자가 받는 버전은 2.7.2 버전이다.






다운 받은 압축 파일을 풀면 

여러 폴더가 보이는데 그 중 현재 자신이 쓰고있는 VISUAL STUDIO 버전에 맞는 build.vcXX 폴더에 들어간다.

필자의 경우는 2013버전(vc 12.0)을 쓰고있으므로 mpir-2.7.2\build.vc12 아래와 같은 경로의 폴더에 들어갔다.


이 폴더 안에 있는 mpir.sln 파일을 연다. ( 비주얼 스튜디오 솔루션 파일)

비주얼 스튜디오가 열리면서 mpir 솔루션 안에 다양한 속성의 프로젝트 들이 있는 것을 확인할 수 있다.

각 프로젝트들의 설명은 아래 document로 대신한다.



이 중 본인이 원하는 환경에 맞게 프로젝트를 Release 모드로 빌드하면된다. 

필자는 C++ 개발을 할 예정이므로 이 중에서 cxx 버전을 빌드 하였다. 

위의 document에도 나와 있듯이 build가 성공하게 되면 mpir-버전 폴더 아래에 dll 폴더나 lib 폴더에 해당하는 파일이 생성된다. 


이제 visual studio에서 생성한 라이브러리를 사용할 수 있게 세팅해 보자.

필자는 lib_mpir-gc 를 빌드하였다. 따라서 mpir-2.7.2\lib\Win32\Release 폴더에 생성된 파일 중 mpir.lib와 mpir.pdb 두 파일을 복사하여

(cxx로 했으면 mpirxx.lib, mpirxx.pdb 도 포함)

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib에 폴더에 붙여넣기 한다. (각자 환경에 맡게)


그리고 나머지 *.h 헤더파일도 복사하여 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include 에 붙여넣기 한다.


이러면 일단 설정 끝!


그후 실제 프로젝트에 사용하기 위해서는 프로젝트 설정을 바꾸는 절차가 필요하다. 

아래 예제를 따라해보자.




win32 콘솔 어플리케이션 빈 프로젝트를 하나 생성하고 아래의 코드를 복붙한다.

#include <stdio.h>
#include <mpir.h>

int main (int argc, char *argv[])
{
 mpz_t aBigPO2;

 mpz_init(aBigPO2);

 mpz_set_ui(aBigPO2, 1073741824); //2^30
 mpz_mul(aBigPO2,aBigPO2,aBigPO2); //2^60
 mpz_mul(aBigPO2,aBigPO2,aBigPO2); //2^120
 mpz_mul(aBigPO2,aBigPO2,aBigPO2); //2^240
 mpz_mul(aBigPO2,aBigPO2,aBigPO2); //2^480
 mpz_mul(aBigPO2,aBigPO2,aBigPO2); //2^960
 mpz_mul(aBigPO2,aBigPO2,aBigPO2); //2^1920

 mpz_out_str(stdout,10,aBigPO2);
 printf ("\n");

 mpz_clear(aBigPO2);
}


이후 프로젝트에서 마우스 오른쪽 버튼을 눌러 properties에 들어간다.


Configuration Properties - Linker - Command Line 에 들어간다.

아래 Additional Options 입력란에 mpir.lib 를 입력한다. (cxx를 설치한 경우 mpirxx.lib 도 함께 입력)  



그리고 나서 build 시켜보면 미션 석세스


2^1920 을 출력하는 프로그램인데, 아래와 같은 결과가 나오면 잘 실행된 것이다.


949711451807891414054698636958849699906924706346851167428009563305851
662866960338751057874083211050161729488483879798993810787765480587192
741530384819193300769874625884321977783469748956377553448566093328992
717820774610081821193616932757859144579109671494034728110890670954570
186561270637912025593911079819522904974136715161890547150302121514577
299257466073410681074505560366912534455201581754427662731068044605805
987604257959314070588213630129796572870132647963130222671409082294912
848599974253399700073940596408585364978789157781640247045138282505908
97948604589281308443672576










참고링크1 : http://hyacinth.byus.net/moniwiki/wiki.php/MPIR%EB%A1%9C%20C%2B%2B%20%EA%B3%A0%EC%A0%95%EB%B0%80%20%EC%97%B0%EC%82%B0%EC%9D%84%20%ED%95%B4%20%EB%B3%B4%EC%9E%90

참고링크2 : http://www.exploringbinary.com/how-to-install-and-run-gmp-on-windows-using-mpir/


GET YASM HERE : http://yasm.tortall.net/Download.html


The YASM version vsyasm.exe is designed specifically for use with Visual Studio 2010(or higher). To tell Visual Studio where to find vsyasm.exe, the environment variable YASMPATH can be set to the absolute path of the directory in which vsyasm.exe is located (this path should include the final backslash). 


BUT, it is uncomfortable. So I recommend another solution below.

Alternatively you can find the directory (or directories) where the VC++ compiler binaries are located and put copies 

of the vsyasm.exe binary in these directories. In my case, location on 64-bit Windows is:


 C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin 


(I'm using visual studio 2013)



여러 오픈소스 라이브러리를 사용하려 하다 보면 YASM이 필요한 경우가 있다.

몇몇 라이브러리들이 어셈블러로 yasm을 사용하기 때문이라고 한다. ( 불확실, 어디서 주워들은 정보)


http://yasm.tortall.net/Download.html


위의 주소에 들어가면 yasm을 구할 수 있다.


우리는 VISUAL STUDIO로 작업을 할 예정이기 때문에 

두 파일 중 각자의 환경에 맞는 파일을 받으면 된다. (2010 이상 버전의 비주얼 스튜디오)

그리고 이 안에 있는 실행파일 vsyasm.exe 파일을 아래 컴파일러가 있는 폴더에 집어 넣는다.


필자의 PATH :  C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin  (2013 버전을 사용중이다)




To use the new custom tools facility in Visual Studio 2010, you need to place a copy of three files - yasm.props, yasm.targets and yasm.xml - into a location where they can be found by the Visual Studio build customisation processes.  There are several ways to do this:


  a. put these files in the MSBUILD customisation directory, 

  which is typically at:


    C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations


  b. put them in a convenient location and set this path in the 'Build Customisations Search Path' in the Visual Studio 'Projects and Solutions|VC++ Project Settings' item in the 'Tools|Options' menu; 


  c. put them in a convenient location and set this path in the 'Build Customisation dialogue (discussed later).



이제 새로운 툴을 설치 했으니 비주얼 스튜디오에게 그걸 반영하라고 해야한다.


설명서에는 몇 가지 방법을 제시하고 있는데 그 중 필자가 선택한 한가지 방법만 소개한다.


MSBuild 폴더에 설정파일들 ( yasm.props, yasm.targets, yasm.xml) 을 집어 넣는것이다.


필자의 경우 MSBuild 폴더의 위치는 아래와 같다.

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations


각자의 환경에 맡는 폴더로 잘 찾아가서 yasm.props, yasm.targets, yasm.xml 이 세 파일을 복사해 넣으면 된다.











Cork는 리눅스, 맥, 윈도우 다양한 플랫폼을 지원한다.


다만 리눅스와 맥은 GMP 라이브러리를 사용하여 설치하지만, 윈도우의 경우에는 MPIR이라는 라이브러리를 사용한다.


둘다 기능과 사용법은 똑같은데 GMP를 윈도우에서 사용하기 어려워서 MPIR을 사용한다.


Cork를 빌드하기 위해서는 MPIR 라이브러리가 필요하므로  아래의 글을 읽고 설정을 하고 다시 돌아오자.


2016/05/12 - [CS/환경설정] - Windows VISUAL STUDIO에서 MPIR 라이브러리 세팅하기 (How to build and use MPIR with VISUAL STUDIO)



이제 본격적으로 cork를 빌드해보자.


먼저 https://github.com/gilbo/cork


코드는 위 주소에서 받을 수 있다. 해당주소 들어가서 Download ZIP 클릭한 후 압축을 풀자.


안에 보면 win/wincork 폴더가 있다. 프로젝트를 열어서 컴파일을 해보자.


다른 분들을 어떨지 모르겠으나 필자는 매우 많은 컴파일 오류가 났다. 이유는 헤더파일의 경로 때문이다.


다른 버전에서는 모르겠으나 visual studio 2013과 2015 에서는 모두 같은 문제가 있었다.


계속 컴파일 해가면서 경로 수정을 해주면서 컴파일에 성공했으나, 이 방법은 시간을 소모한다. 몇 개 안되는줄 알고 일일이 수정했다.

예를 들어 #include "vec.h"에서 오류가 생긴다면,  상대위치를 파악하여 #include "..\math\vec.h" 로 수정하는 식이다.

대략 20개? 정도 수정한 것 같다.


굳이 모양(?)을 신경쓰지 않는다면 아래의 방법을 추천한다.

모양새가 이쁘진 않지만 src 폴더안에 있는 하위 폴더들 (accel, math 등)에 있는 파일들을 모두 src 폴더 안에 넣는것이다.

이러면 include할 때 경로 문제가 발생하지 않을 것이다. 


빌드를 하게 되면 디버그 폴더 안에 wincork.exe 라는 파일이 생성된다. 

비주얼 스튜디오에서 start without debugging 으로 시작하게 되면 옵션이 없어서 프로그램이 바로 종료되므로 cmd에서 열도록 한다.


wincork.exe가 있는 폴더에 가서 폴더 주소창에 cmd 라고 입력하면 바로 현재 폴더로 명령프롬프트에 들어가진다.



wincork.exe -help 라고 입력하면 아래와 같은 설명을 볼 수 있다.





cork에서 기본으로 제공하는 example 파일을 통해 union 연산을 활용해 보자.

example 폴더는 cork 폴더 바로 아래에 있다. 이 안에는 ballA.off 파일과 ballB.off 파일이 있는데 같은 크기의 공 파일이다. 






참고로 .off 확장자 파일을 열고 싶다면 아래의 글을 참고하자.


2016/05/12 - [CS/환경설정] - *.off, off 확장자 파일 열기(How to open .off extension file)



cork로 union 연산을 하려면 wincork.exe -union input_file1 input_file2 output_file 처럼 입력하면 된다.


아래는 필자가 입력한 명령어 이다.

wincork.exe -union ..\...\samples\ballA.off ..\..\..\samples\ballB.off out.off



연산을 수행하면 아래와 같이 union 연산이 잘 수행 된 것을 볼 수 있다.







http://1004lucifer.blogspot.kr/2014/11/gdbosx-mac-gdb.html

+ Recent posts