QTCreator로 프로젝트를 생성할 경우 빌드시스템에서 에러를내며 빌드를 마치지 못한 채 CMakeLists.txt 만 덜렁 남겨놓는 경우가 있다.

뭐가 문제니..
호고곡... 그래서 뭘 고쳐야한다는거야..

좌측의 Projects에 들어가 Build 상태를 보면 Configuration failed 라며 무언가 설정이 잘못되어있음을 호소하는데 Manage Kits... 를 클릭해 kits와 compilers를 훓어보지만 컴파일러가 제대로 감지되어 있음에도 kits에선 제대로된 컴파일러를 설정 못해주고 있다!

왜 제대로 되는게 없어!!

 

Qt를 써보고자 QtCreator를 깔았을뿐인데 왜 시작부터 원인을 모르겠는 에러가 나는건가 답답한 속내를 드러내지 않을수가 없다!

원인을 추적하기 위해 하단의 General Messages 를 읽어보자

...더보기

Running Windows Runtime device detection.

C:/Qt/Qt5.13.1/5.13.1/winrt_armv7_msvc2015/bin/winrtrunner.exe --list-devices

Running Windows Runtime device detection.

C:/Qt/Qt5.13.1/5.13.1/winrt_armv7_msvc2015/bin/winrtrunner.exe --list-devices

Running Windows Runtime device detection.

C:/Qt/Qt5.13.1/5.13.1/winrt_armv7_msvc2015/bin/winrtrunner.exe --list-devices

Running "C:\Program Files\CMake\bin\cmake.exe -E server "--pipe=\\.\pipe\{5de5fcf8-7908-490d-b170-05b3de4a1399}" --experimental" in C:\Users\domino\AppData\Local\Temp\QtCreator-gCuTJa\qtc-cmake-veopaBny.

Starting to parse CMake project, using: "-DCMAKE_BUILD_TYPE:STRING=Debug", "-DCMAKE_CXX_COMPILER:STRING=C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/x86_amd64/cl.exe", "-DCMAKE_C_COMPILER:STRING=C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/x86_amd64/cl.exe", "-DCMAKE_PREFIX_PATH:STRING=C:/Qt/Qt5.13.1/5.13.1/msvc2015_64", "-DQT_QMAKE_EXECUTABLE:STRING=C:/Qt/Qt5.13.1/5.13.1/msvc2015_64/bin/qmake.exe".

The CXX compiler identification is MSVC 19.0.24245.0

Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/x86_amd64/cl.exe

CMake Error: Generator: execution of make failed. Make command was: jom /nologo cmTC_5e62d\fast &&

Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/x86_amd64/cl.exe -- broken

CMake Error at C:/Program Files/CMake/share/cmake-3.15/Modules/CMakeTestCXXCompiler.cmake:53 (message):

The C++ compiler

 

"C:/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/x86_amd64/cl.exe"

 

is not able to compile a simple test program.

 

It fails with the following output:

 

Change Dir: C:/Users/domino/AppData/Local/Temp/QtCreator-gCuTJa/qtc-cmake-veopaBny/CMakeFiles/CMakeTmp

 

Run Build Command(s):jom /nologo cmTC_5e62d\fast && 지정된 파일을 찾을 수 없습니다

Generator: execution of make failed. Make command was: jom /nologo cmTC_5e62d\fast &&

 

 

 

 

CMake will not be able to correctly generate this project.

Call Stack (most recent call first):

CMakeLists.txt:3 (project)

 

 

Configuring incomplete, errors occurred!

See also "C:/Users/domino/AppData/Local/Temp/QtCreator-gCuTJa/qtc-cmake-veopaBny/CMakeFiles/CMakeOutput.log".

See also "C:/Users/domino/AppData/Local/Temp/QtCreator-gCuTJa/qtc-cmake-veopaBny/CMakeFiles/CMakeError.log".

CMake Deprecation Warning:

The 'cmake-server(7)' is deprecated. Please port clients to use the

'cmake-file-api(7)' instead.

 

 

CMake Project parsing failed.

 

해당 문제의 핵심 에러로그는 이것이다.

 

Run Build Command(s):jom /nologo cmTC_5e62d\fast && 지정된 파일을 찾을 수 없습니다

Generator: execution of make failed. Make command was: jom /nologo cmTC_5e62d\fast &&

 

커맨드에서 jom 이라는 명령어를 수행할 프로그램이 환경변수에 포함되지 않아서 생긴 문제였던 것이다!

jom은 QtCreator가 깔려있는 경로의 bin 폴더에 담겨있다.

그러므로 해결방법은 간단하다. 환경변수로 {Qt가 깔린 경로}\Tools\QtCreator\bin 을 추가하자.

그후 qt creator를 종료하고 프로젝트를 다시 실행하면 잠시후 빌드시스템이 성공적으로 빌드했음을 알려줄것이다.

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

OpenCV 연동하기  (1) 2019.10.18
Qt 단축키  (0) 2019.07.17
Qt 란?  (0) 2019.07.17

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

 

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

- 편의 - 

F1 : 커서가 위치해있는 클래스 혹은 함수에 대한 정보를 Qt Assistant 로 보여준다.

F4 : 현재 에디터에 표시중인 헤더파일과 소스파일을 오간다.

 

F2 : 현재 에디터에 표시중인 헤더파일과 소스 코드 파일을 오간다.

shift + F2 : 커서가 위치해 있는 멤버함수나 멤버변수의 헤더파일 선언위치와 소스파일에서 위치한 라인을 오간다.

 

ctrl + 1 : 좌측의 Welcome 메뉴에 대한 단축키. 초기화면 모드

ctrl + 2 : 좌측의 Edit 메뉴에 대한 단축키. 코드 편집 모드

ctrl + 3 : 좌측의 Design 메뉴에 대한 단축키. 디자인 모드

ctrl + 4 : 좌측의 Debug 메뉴에 대한 단축키. 디버그 모드

ctrl + 5 : 좌측의 Projects 메뉴에 대한 단축키. 프로젝트 모드

ctrl + 6 : 좌측의 Help 메뉴에 대한 단축키. 매뉴얼 모드

 

ctrl + enter : intellisense

(변수나 클래스, 함수명 일부 입력후) + tab : intellisense

 

- 디버그 -

shift + r : 실행

F5 : 디버깅 모드 실행

shift + F5 : 디버깅 모드 종료

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

Configuration failed 에러  (0) 2019.10.19
OpenCV 연동하기  (1) 2019.10.18
Qt 란?  (0) 2019.07.17

* Qt는 Unix, Linux, Windows, Mac OS X, Android, Black-berry, QNX 등 상이한 플랫폼상에서 동일한 개발환경을 제공하며 개발툴인 Qt Creator IDE 툴을 통해 원하는 플랫폼을 대상으로 빌드할 수 있다.

 

* C++, Python 을 지원하며 GUI 어플리케이션 작성에 특화되어있다.

 

* 개발에 필요한 IDE 툴로

Qt Creator - Qt 어플리케이션 개발을 위한 IDE 툴,

Qt Assistant - Qt API에 대한 Help Document 툴,

Qt Designer - drag & drop 방식으로 GUI 설계를 도와주는 툴 ,

qmake - 작성한 소스코드를 바이너리 실행파일로 컴파일 해주는 툴,

그 외에도 GNU Symbolic Debugger(GDB), Microsoft Console Debugger(CDB), QML/JavaScript Debugger 과 같은 디버거와 메모리 누수를 찾고 분석하기 위한 툴을 지원한다.

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

Configuration failed 에러  (0) 2019.10.19
OpenCV 연동하기  (1) 2019.10.18
Qt 단축키  (0) 2019.07.17

+ Recent posts