이 글을 작성하기까지.. 온갖 고난속에 많은 시간이 갈려나갔다. 그 이유는 독자도 경험했을지 모를 에러에 있다. 필자가 경험한 에러는 이러하다.

 

mingw_32 빌드 도중 30~40%에서 cxx 관련 에러후 실패!

qt와 OpenCV의 연동과 관련된 키워드를 구글링하면 최다조회로 mingw와 CMake를 이용한 빌드가 검색된다.

해당 게시물들을 통해 연동에 성공했으면 얼마나 좋았을까! 필자는 makefile 생성후 mingw_32로 빌드하는 과정에서 30~40% 즈음에 cxx와 관련된 원인모를 에러를 만나 좌절할수 밖에 없었다. 이에대해 makefile을 생성할때 옵션 몇개를 변경하는 방안을 제시한 블로그도 있지만 한결같은 결과만 볼수 있을 뿐이었다...

 

이외에도 여러가지 시도와 에러를 반복했지만 생략하고 고심끝에 찾아낸 연동방법을 소개하겠다.

 

OpenCV 홈페이지 : https://opencv.org/releases/

 

Releases

 

opencv.org

OpenCV 공식 홈페이지에서는 msvc15 버전으로 빌드된 파일들을 지원하기 때문에 visual studio의 경우 해당 파일을 다운받아 압축풀고 프로젝트 설정만 해주면 사용이 가능하다.

그리고 Qt Creator에서는 vs의 컴파일러를 통한 빌드를 지원한다! 즉 mingw 컴파일러를 통한 빌드가 안된다면 이미 빌드되어 올라온 msvc15 파일을 이용하면 된다. 

 

참고 : Using OpenCV with gcc and CMake — OpenCV 3.0.0-dev documentation

 

Using OpenCV with gcc and CMake — OpenCV 3.0.0-dev documentation

Result By now you should have an executable (called DisplayImage in this case). You just have to run it giving an image location as an argument, i.e.: You should get a nice window as the one shown below:

docs.opencv.org

 

1. OpenCV 홈페이지에서 빌드된 파일을 받아 압축을 푼다.

2. {압축푼 폴더}\build\x64\vc15\bin 를 환경변수에 추가한다.

3. QTCreator에서 CMakeLists.txt를 다음과 같이 수정한다.

cmake_minimum_required(VERSION 3.5) 
project(ProjectName LANGUAGES CXX) 
set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOUIC ON)

set(CMAKE_AUTOMOC ON)

set(CMAKE_AUTORCC ON) 
set(CMAKE_CXX_STANDARD 11)

set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(OpenCV REQUIRED) #추가

find_package(Qt5 COMPONENTS Widgets REQUIRED)

include_directories(${OpenCV_INCLUDE_DIRS}) #추가
add_executable(FID main.cpp mainwindow.cpp mainwindow.h mainwindow.ui ) 
target_link_libraries(ProjectName PRIVATE Qt5::Widgets ${OpenCV_LIBS}) #변경

위와 같이 수정후 저장하면 CMake가 모듈에 OpenCV 라이브러리를 끌어온다.

 

해당 문제는 결국 CMake를 이번에 처음 이용해봤다는점과 각종 개발툴이 자동으로 갖춰준 빌드도구에 길들여져 빌드에 대한 이해를 게을리한 결과인듯 싶다.

이참에 visual studio code를 들여야겠다는게 필자의 반성이다.

 

'공부 > Qt' 카테고리의 다른 글

Configuration failed 에러  (0) 2019.10.19
Qt 단축키  (0) 2019.07.17
Qt 란?  (0) 2019.07.17

+ Recent posts