부제 : Ubuntu에서 Make로 compile된 코드에 Qt GUI 추가하기
프롤로그
Ubuntu terminal 창에서 make로 compile된 코드에 Qt GUI를 추가하는 방법은 없을까?라는 단순한 호기심에서 작업을 시작하게 되었다.
작업 내용
Make로 정상적으로 compile된 코드(GNU Make 4.2.1 컴파일러 사용 했음)는 준비가 되어 있고, Ubuntu에서 Qt를 설치하는 작업을 해야 한다.
참고로, 본인이 사용하는 Ubuntu version은 20.04이다.
1. Qt 설치 준비
$ sudo apt update
$ sudo apt upgrade
컴파일러를 이미 갖고 있다는 가정하에 설명을 하지만, 혹시라도 compiler가 없는 경우는 하기 명령어를 실행한다.
$ sudo apt install build-essential
2. Qt 설치하기
Qt 관련 페키지를 설치한다. 참고로 qt5를 설치하지만, 다른 버전을 설치할 수도 있다. 예를 들어 qt4 등...
$ sudo apt install qt5-default
Qt creator를 설치하기 위해 아래 그림과 같이 "ubuntu software"를 클릭하여 실행한다.
검색창에서 "Qt creator"를 입력한 후 설치를 한다. 하기 1 / 2 / 3을 참고. 본인은 이미 install을 해서 설치 과정은 생략한다.
3. Qt 작업환경 만들기
Qt를 실행한다. 그 다음 "Projects" 버튼을 누른 후, "+ New" 버튼을 누른다.
"+ New" 버튼을 누르면 "Qt Widgets Application" 을 선택 후 하단의 "Choose"를 누른다.
그 다음 하기의 붉은 색 부분에 원하는 PRJ 이름 및 경로를 각각 설정 후 "Next" 버튼을 누른다.
그 다음 창에서 Build system을 디폴트로 설정된 qmake를 그대로 사용하기 위해, 별도의 추가 설정 없이 "Next" 버튼을 누른다.
Class Information에서도 디폴트 상태로 "Next" 버튼을 누른다. 혹시라도 이름을 변경하고 싶다면 변경해도 무방.
그 다음 번역 파일 설정에서 디폴트 상태로 사용해도 되고 한국어를 설치해도 된다. 그 다음 "Next" 버튼을 누른다.
그 다음이 중요한 부분이다. 컴파일러를 설정하는 부분인데, 하기 options를 눌러서 qmake(Qt용 컴파일러)와 현재 사용하고 있는 즉, make로 compile된 코드에서 사용한 컴파일러를 이곳에서 선택해주면 된다.
먼저 Qt를 다음과 같이 설정한다.
"Option"을 누른 다음 "Qt versions" 탭을 선택 è Add 버튼 선택 è위에서 설치한 qt5의 qmake를 선택 è"Apply" 버튼 선택한다.
경로는 /usr/lib/x86_64_linux_gnu/qt5/bin/qmake 이다.
그 다음 "Kits 탭" 선택 è Qt version에서 방금 설정한 qt5로 변경한다.
그리고 마지막으로 소스 컴파일시 사용했던 compiler인 gcc를 다음과 같이 설정하여 준다.
만약 해당 버전이 없는 경우 "compilers" 탭에서 Manual 선택 è C++ 선택 후 Add 버튼을 눌러 C++ 컴파일러 설정 è C 선택 후 Add 버튼을 눌러 C 컴파일러를 설정하면 된다. 그 다음 다시 윗 부분 설정으로 돌아가서 선택하면 된다.
Apply 버튼과 OK 버튼을 눌러 설정을 모두 완료해 준다.
이상 설정이 제대로 되었다면 다음과 같이 "Desktop"이 보일 것이다.
Check를 하고 Next 버튼을 누른다.
하기 화면에서 Finsh를 누르면 모든 설정이 완료된다.
설정이 완료되면 하기 코드가 나타난 화면을 볼 수 있다.
빨간 원 안에 실행 버튼을 누르면 GUI를 실행해 볼 수 있다.
실행을 하면 다음과 같은 GUI가 표시된다.
4. Qt를 이용한 디자인
위에서 GUI 화면이 정상적으로 표시 되었다면, Project 작업창에서 "Forms" 아래 있는 "mainwindow.ui"를 더블 클릭한다.
그럼 아래와 같이 우리에게 익숙한 UI들이 왼쪽에 표시 되어 있는 것을 확인 할 수 있다.
필요한 요소들을 Drag해서 왼쪽 상단 작업창에 끌어 놓으면 된다. 간단하게 GUI 작업을 할 수 있다.
Push button 2개와 Line Edit 1개로 다음과 같이 꾸며 보았다.
실행 버튼을 누르면 정상적으로 실행이 되는 것을 확인 할 수 있다.
5. 기존 소스코드를 qt의 main.c에 합치기
기존 make로 compile 했던 source code의 main.c를 qt의 main.c와 합친다.
Qt의 main.c는 Qt creator에서 더블 클릭하면 다음과 같이 간단한 코드로 구성이 되어 있는 것을 알 수 있다.
이 main.c 파일에 기존 make로 compile했던 코드를 합치면 간단히 해결된다.
본인은 7번 라인 이전에 기존 main.c 파일의 main 함수 내용을 copy 했다.
그 다음 실행버튼을 눌러 컴파일을 실시하면 다음과 같이 Error가 발생한다.
Error가 발생하는 Header 파일을 이 Projects에 다 포함시킨다.
Project 창에서 Headers è 오른쪽 클릭 후 "Add Existing Files…"로 선택한다.
이런식으로 Lib도 다 포함 시킨다.
그러면 .pro 파일은 다음과 같이 표시된다.
그 다음 컴파일을 하여 Error가 발생하지 않으면 성공!!!
Error가 발생한다면 위와 같은 방법으로 하나씩 Error를 잡아가면 된다. -_-;;
Error를 다 잡고 Build 및 RUN을 성공적으로 하면, 위에서 만들었던 GUI가 나타나면 완성이다.
본인은 GUI를 업데이트 하여 최종적으로 다음과 같이 구현 하였다. 상세한 GUI 구현기는 다음에 계속 하도록 하겠다…. ㅎㅎ
- 끝