우선 필자는 윈도우 Visual Studio 에서의 개발이 익숙하며 Qt는 python 에서 간단히 사용한 경험만 있고, 거의 입문자와 같은 단계이다.
그래서 우선은 Visaul Studio 2019 Qt VSTools을 설치하여 개발환경을 구축하였다.
하지만, 최근에는 Linux 환경에서의 개발을 함께 하면서 Qt를 여러 환경에서 경험하기 위해서 VS와 Creator 간의 프로젝트 전환하는 것이 잘 안되는 문제점에 대해 해결 방법을 찾게 되어 정리한다.
1. 프로젝트 생성하기
기본적으로 VS를 이용하여 Qt 프로젝트를 생성하는 방법에 대한 tutorial 은 Qt manual에서 설명해주고 있다.
Getting Started | Qt VS Tools Manual
하지만, 마지막 섹션에서 아래와 같이 .pro , .pri 파일을 생성하고 이를 Creator 에서 import 하여 사용하려고 할 때 include 문제점이 발생하였다.
2. 파일구조 표시방법의 이질감
우선 테스트 한 프로젝트의 구조는 위의 프로젝트에서 처럼 QtWidgetApplication 이 있고 버튼을 이용해 QDialog 를 생성하는 구조이다.
Qt VS Tools에서 만든 .pro 파일을 creator 에서 open 하면 아래와 같은 구조로 나온다.
.pro 파일에서 직접 파일구조를 링크하고 있는게 아니라 include 방식으로 링크하기 때문에 좀 다른 구조처럼 보이지만 사용에는 문제없다.
만약 눈에 거슬린다면 pri 파일의 링크 정보를 .pro 파일로 옮기면 기대하는 구조처럼 보여지게 된다.
하지만, VS에서 작업을 하고 다시 creator로 불러오게 될경우 계속해서 pri파일이 업데이트 되기 때문에 변경한 내용이 overwrite 되는 문제가 있다.
3. Include 에러
이제 필자가 설명하려 하였던 진짜 문제점 내용이다. 위에서와 같이 creator로 불러온 프로젝트를 빌드하면 에러가 발생한다.
문제점을 확인하기 위해서 동일한 구조의 프로젝트를 creator에서 만들었을 때에는 문제가 없었다.
해결방법은 간단하다.
.pro 파일에 아래의 내용을 추가한면된다.
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
CONFIG += c++11
.pro파일은 한번만 생성하면 되는 내용이라서 VS에서 개발을 진행해도 변경사항이 없다. pri만 바뀐다.
빌드 에러 없이 실행이 가능하게 된다.