이전 글에서 계속…
4. depixelize 컴파일
앞에서도 썼듯이, 몇 가지 튜닝을 해야 정상적으로 컴파일할 수 있다.
우선 다운받은 파일을 적절한 폴더에서 압축을 풀면 아래와 같은 구성을 볼 수 있다.
여기서 우선 src 폴더에 저장된 CMakeLists.txt 파일에 Boost 및 OpenCV의 폴더 정보를 추가하여 아래와 같이 수정한다.
cmake_minimum_required(VERSION 2.8)
project(depixelize)
set(BOOST_ROOT c:/_lib/boost_1_62_0)
set(BOOST_INCLUDE_DIRS c:/_lib/boost_1_62_0/boost)
set(BOOST_LIBRARYDIR c:/_lib/boost_1_62_0/stage/win32/lib)
set(OpenCV_DIR c:/_lib/opencv/build)
set(OpenCV_INCLUDE_DIRS c:/_lib/opencv/build/include)
include(build/CMakeLists.txt)
include_directories(
${PROJECT_SOURCE_DIR}
${Boost_INCLUDE_DIRS}
${OpenCV_INCLUDE_DIRS}
)
add_subdirectory(depixelize)
add_subdirectory(render)
그리고, 앞에서 했던 것과 동일하게 build 폴더에서 아래와 같이 실행한다.
cmake ..\src
그런데… 잘 되지 않는다. 아래와 같은 오류가 발생한다.
CMake Error at C:/Apps/cmake/share/cmake-3.6/Modules/FindBoost.cmake:1753 (message):
Unable to find the requested Boost libraries.
Boost version: 1.62.0
Boost include path: C:/_lib/boost_1_62_0
Could not find the following Boost libraries:
boost_filesystem
boost_system
이 문제를 해결하려면 c:\_lib\boost_1_62_0\stage\win32\lib\에서 파일 두 개를 아래와 같이 이름을 바꿔서 복사하면 된다.
c:
cd c:\_lib\boost_1_62_0\stage\win32\lib\
copy libboost_filesystem-vc140-mt-1_62.lib boost_filesystem.lib
copy libboost_system-vc140-mt-1_62.lib boost_system.lib
여기서 다시 cmake를 위와 같은 방법으로 실행하면 depixelize.sln 등의 파일이 생성된다.
이 sln 파일을 더블클릭하면 Visual Studio 2015에서 프로젝트를 읽어들인다.
5. getopt.h 설치
그런데, 이것만으로는 컴파일이 되지 않는다.
Visual Studio에선 getopt.h가 없기 때문에 정상적으로 컴파일되지 않는다.
skandhurkat / Getopt-for-Visual-Studio에서 getopt.h를 다운받아 소스에 포함시켜야 한다.
...\src\depixelize\에 getopt.h를 복사한 뒤에 Solution Explorer - depixelize에 추가한다.
그리고 main.cpp에서
#include <getopt.h>
를
#include "getopt.h"
로 수정한다.
6. parse_args() 수정
main.cpp 파일에 parse_args() 함수가 있다.
이 함수에선 string을 사용하는데, 형변환 과정에서 WCHAR와 char가 혼용되어 문제를 일으킨다.
이 문제를 해결하려면 main.cpp 상단에 아래 내용을 추가한 뒤
#ifdef _MSC_VER
#include <atlstr.h>
#endif
이 부분을
std::strcpy(options->output_filename, filename.c_str());
아래와 같이 수정한다.
#ifdef _MSC_VER
CW2A temp(filename.c_str());
std::strcpy(options->output_filename, temp);
#else
std::strcpy(options->optput_filename, filename.c_str());
#endif
다음 글에 계속…
또 하나의 고품질 픽셀 아트 리샘플러 xBRZ (0) | 2016.11.19 |
---|---|
VS2015에서 Depixelizing Pixel Art 컴파일 #3 (0) | 2016.11.02 |
VS2015에서 Depixelizing Pixel Art 컴파일 #1 (0) | 2016.11.02 |
Depixelizing Pixel Art(픽셀 제거 픽셀 아트) 소개 (0) | 2016.10.30 |
ffmpeg으로 오디오 변환시 팁 두 가지 (0) | 2016.08.23 |