유니티에서 OpenCV 사용하기 - 2.Visial C++ 기본 설정

프로그래밍/OpenCV2019. 6. 4. 19:31

Visual Studio를 실행하여 빈 C++ 프로젝트를 만들어주세요.

 

소스 파일 폴더에 파일 추가를 합니다.

C++ 파일을 하나 추가해주세요. 저는 파일 이름을 first.cpp로 했습니다.

참고로 빌드 설정에서 32비트로 되어 있습니다. 저는 앞선 파트에서 OpenCV를 32비트로 빌드했기에 비주얼 스튜디오에서도 동일하게 32비트로 놔두려고 합니다.

64비트로 만들어야 될 것 같습니다. 위 사진에서 x86이 아닌 x64를 선택해주세요.

 

프로젝트에서 마우스 오른쪽 버튼을 클릭합니다. 메뉴에서 속성을 클릭합니다.

Release와 Debug의 설정을 같이 변경하기 위해 모든 구성을 클릭해주세요.

일반에서 대상 확장명과 구성 형식을 dll로 변경해주세요.

C/C++ > 일반에서 추가 포함 디렉터리에 $(OPENCV_DIR)\include를 추가합니다. 이 폴더에 hpp파일이 있습니다.

 

링커 > 일반에서 추가 라이브러리 디렉터리$(OPENCV_DIR)\lib\Debug$(OPENCV_DIR)\lib\Release를 추가합니다.

(바로 아래 단계에서 설정할 추가 종속성 라이브러리가 존재하는 경로를 입력하는 단계입니다)

 

Release 빌드시에만 적용되는 옵션을 설정하기 위해 종속성을 Release로 변경합니다. 링커 > 입력추가 종속성opencv_core410.libopencv_highgui410.lib을 추가합니다.

(여기서 링커가 link해야 하는 라이브러리를 명시합니다. 중요한 부분입니다)

 

Debug빌드시에만 적용되는 옵션을 설정하기 위해 종속성을 Debug로 변경합니다. 링커 > 입력 추가 종속성 opencv_core410d.lib opencv_highgui410d.lib을 추가합니다.

 

설정이 제대로 됐는지 확인하기 위해 first.cpp에 아래의 코드를 추가합니다.

 

#include <opencv2\core.hpp>
#include <opencv2\highgui.hpp>

 

만약 설정이 잘못됐다면 위 사진처럼 파일들을 찾지 못할것입니다.

문제가 없다면 솔루션 빌드를 해봅시다.

 

Release와 Debug 빌드를 각각 해봤는데 잘 되네요.

 

실행까지 잘 되는지 확인하기 위해 아래의 코드를 대신 넣고 실행을 해보세요.

(프로젝트 속성에서 잠깐 테스트할 동안 dll을 exe로 변경해야 실행 됨)

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>
 
using namespace cv;
using namespace std;
 
int main(int argc, char** argv) {
    cv::Mat redImg(cv::Size(320, 240), CV_8UC3, cv::Scalar(0, 0, 255));
    cv::namedWindow("red", cv::WINDOW_AUTOSIZE);
    cv::imshow("red", redImg);
    cv::waitKey(0);
    cv::destroyAllWindows();
 
    return 0;
}

정상적으로 환경설정이 다 됐다면 아래의 창이 떠야합니다.

관련 글

유니티에서 OpenCV 사용하기 - 1.기본 환경 설정

유니티에서 OpenCV 사용하기 - 3.실전(이미지 전달,통신)

참고

docs.microsoft.com/ko-kr/cpp/build/reference/linker-property-pages?view=msvc-160

 

링커 속성 페이지

자세한 정보: 링커 속성 페이지

docs.microsoft.com

stackoverflow.com/questions/11385617/what-is-the-difference-between-vc-project-lib-directories-and-linker-inputs

 

What is the difference between VC++ project lib directories and linker inputs

I am just approaching C++ development (from a C# background), and i am wondering what is the difference between Library Directories in C++ project settings (in Visual Studio): and the Linker "Inpu...

stackoverflow.com

 

작성자

Posted by 드리머즈

관련 글

댓글 영역