- 공유 링크 만들기
- X
- 이메일
- 기타 앱
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
모 3D 프로젝트를 CMake로 생성하다 막혔던 부분 및 해결법을 남긴다.
1. 실행하고 싶은 프로젝트를 받는다.
zip이나 tar로 제공되어 있다면 브라우저 상에서 받아서 압축을 풀면 된다.
git에 올라와 있다면 cmd 에서 git clone --recursive https:// ...... /xxx.git 같은 식으로 받을 수 있다.(--recursive 옵션은 관련 라이브러리까지 모두 복사하는 거 같은데..) 커맨드로 생성하고 싶으면 mkdir build && cd build같은 커맨드로 빌드할 폴더를 만들어놓는게 편하다.
2. CMake를 구동하기 전 먼저 Readme등을 확인해서 구동 환경을 체크한다.
특히 IDE는 뭘 쓰고, x86를 쓰는지 x64를 쓰는지, Boost는 버전 몇을 쓰고.. 이런 것들이 맞지 않으면 생성은 제대로 되도 빌드가 안되는 경우가 부지기수니 꼭 체크해야 한다.
3. 구동 환경에서 요구하는 라이브러리를 모두 설치한다.
예)
OpenCV : CV 공식 사이트(http://opencv.org/releases.html) 에서 다운로드 및 인스톨
Boost : 소스포지 부스트 페이지(https://sourceforge.net/projects/boost/files/boost-binaries/) 에서 VS 버전에 맞는 버전을 다운로드 및 인스톨한다.(ex : VS 2015 -> Visual Studio 14 2015)
라이브러리 중에서는 CMake로 생성이 필요한 라이브러리도 있으니, Readme등을 확인해서 올바르게 인스톨하도록 한다.
4. CMake로 Configure & Generate
gui환경의 CMake에선 Browse Source에서 CMakeList가 포함된 폴더를 지정해주면 되고,
cmd에서 생성할 경우 cmake -G "IDE명 및 버전(ex: Visual Studio 14 2015)" ../CMakeList가 포함된 폴더명 -DCMAKE_INSTALL_PREFIX=../install/ 를 입력한다.
문제가 없으면 바로 빌드( 5.) 단계로 넘어간다.
문제가 발생할 경우 4.1로 넘어간다.
4.1 CMakeCache.txt 혹은 CMakeList.txt 에서 라이브러리 폴더를 지정
Boost_DIR : NOTFOUND로 되어있어도 딱히 생성시나 빌드시 문제는 없었다.
//Boost filesystem library (debug)
Boost_FILESYSTEM_LIBRARY_DEBUG:FILEPATH=C:/local/boost_1_64_0/lib32-msvc-14.0/boost_filesystem-vc140-mt-gd-1_64.lib
//Boost filesystem library (release)
Boost_FILESYSTEM_LIBRARY_RELEASE:FILEPATH=C:/local/boost_1_64_0/lib32-msvc-14.0/boost_filesystem-vc140-mt-1_64.lib
//Path to a file.
Boost_INCLUDE_DIR:PATH=C:/local/boost_1_64_0
//Boost library directory DEBUG
Boost_LIBRARY_DIR_DEBUG:PATH=C:/local/boost_1_64_0/lib32-msvc-14.0
//Boost library directory RELEASE
Boost_LIBRARY_DIR_RELEASE:PATH=C:/local/boost_1_64_0/lib32-msvc-14.0
//Boost program_options library (debug)
Boost_PROGRAM_OPTIONS_LIBRARY_DEBUG:FILEPATH=C:/local/boost_1_64_0/lib32-msvc-14.0/boost_program_options-vc140-mt-gd-1_64.lib
//Boost program_options library (release)
Boost_PROGRAM_OPTIONS_LIBRARY_RELEASE:FILEPATH=C:/local/boost_1_64_0/lib32-msvc-14.0/boost_program_options-vc140-mt-1_64.lib
//Boost system library (debug)
Boost_SYSTEM_LIBRARY_DEBUG:FILEPATH=C:/local/boost_1_64_0/lib32-msvc-14.0/boost_system-vc140-mt-gd-1_64.lib
//Boost system library (release)
Boost_SYSTEM_LIBRARY_RELEASE:FILEPATH=C:/local/boost_1_64_0/lib32-msvc-14.0/boost_system-vc140-mt-1_64.lib
1. 실행하고 싶은 프로젝트를 받는다.
zip이나 tar로 제공되어 있다면 브라우저 상에서 받아서 압축을 풀면 된다.
git에 올라와 있다면 cmd 에서 git clone --recursive https:// ...... /xxx.git 같은 식으로 받을 수 있다.(--recursive 옵션은 관련 라이브러리까지 모두 복사하는 거 같은데..) 커맨드로 생성하고 싶으면 mkdir build && cd build같은 커맨드로 빌드할 폴더를 만들어놓는게 편하다.
2. CMake를 구동하기 전 먼저 Readme등을 확인해서 구동 환경을 체크한다.
특히 IDE는 뭘 쓰고, x86를 쓰는지 x64를 쓰는지, Boost는 버전 몇을 쓰고.. 이런 것들이 맞지 않으면 생성은 제대로 되도 빌드가 안되는 경우가 부지기수니 꼭 체크해야 한다.
3. 구동 환경에서 요구하는 라이브러리를 모두 설치한다.
예)
OpenCV : CV 공식 사이트(http://opencv.org/releases.html) 에서 다운로드 및 인스톨
Boost : 소스포지 부스트 페이지(https://sourceforge.net/projects/boost/files/boost-binaries/) 에서 VS 버전에 맞는 버전을 다운로드 및 인스톨한다.(ex : VS 2015 -> Visual Studio 14 2015)
라이브러리 중에서는 CMake로 생성이 필요한 라이브러리도 있으니, Readme등을 확인해서 올바르게 인스톨하도록 한다.
4. CMake로 Configure & Generate
gui환경의 CMake에선 Browse Source에서 CMakeList가 포함된 폴더를 지정해주면 되고,
cmd에서 생성할 경우 cmake -G "IDE명 및 버전(ex: Visual Studio 14 2015)" ../CMakeList가 포함된 폴더명 -DCMAKE_INSTALL_PREFIX=../install/ 를 입력한다.
문제가 없으면 바로 빌드( 5.) 단계로 넘어간다.
문제가 발생할 경우 4.1로 넘어간다.
4.1 CMakeCache.txt 혹은 CMakeList.txt 에서 라이브러리 폴더를 지정
Boost_DIR : NOTFOUND로 되어있어도 딱히 생성시나 빌드시 문제는 없었다.
//Boost filesystem library (debug)
Boost_FILESYSTEM_LIBRARY_DEBUG:FILEPATH=C:/local/boost_1_64_0/lib32-msvc-14.0/boost_filesystem-vc140-mt-gd-1_64.lib
//Boost filesystem library (release)
Boost_FILESYSTEM_LIBRARY_RELEASE:FILEPATH=C:/local/boost_1_64_0/lib32-msvc-14.0/boost_filesystem-vc140-mt-1_64.lib
//Path to a file.
Boost_INCLUDE_DIR:PATH=C:/local/boost_1_64_0
//Boost library directory DEBUG
Boost_LIBRARY_DIR_DEBUG:PATH=C:/local/boost_1_64_0/lib32-msvc-14.0
//Boost library directory RELEASE
Boost_LIBRARY_DIR_RELEASE:PATH=C:/local/boost_1_64_0/lib32-msvc-14.0
//Boost program_options library (debug)
Boost_PROGRAM_OPTIONS_LIBRARY_DEBUG:FILEPATH=C:/local/boost_1_64_0/lib32-msvc-14.0/boost_program_options-vc140-mt-gd-1_64.lib
//Boost program_options library (release)
Boost_PROGRAM_OPTIONS_LIBRARY_RELEASE:FILEPATH=C:/local/boost_1_64_0/lib32-msvc-14.0/boost_program_options-vc140-mt-1_64.lib
//Boost system library (debug)
Boost_SYSTEM_LIBRARY_DEBUG:FILEPATH=C:/local/boost_1_64_0/lib32-msvc-14.0/boost_system-vc140-mt-gd-1_64.lib
//Boost system library (release)
Boost_SYSTEM_LIBRARY_RELEASE:FILEPATH=C:/local/boost_1_64_0/lib32-msvc-14.0/boost_system-vc140-mt-1_64.lib
그 밖에 CV나 eigen등의 라이브러리는 PATH에 CMakeList가 포함된 폴더를 지정하면 된다.
5. 생성된 .sln 파일 등을 오픈해서 빌드
빌드 도중 에러가 나면 2.를 다시 보고 3. 혹은 4.1이 올바르게 되었는지 체크한다.
댓글
댓글 쓰기