한국어
Qt
 

2018년 Qt는 기존 빌드 시스템인 qmake 와 CMake 에 집중한다며 qbs를 포기하기로 발표하였다. 지원을 올해말까지(2019년) 한정하였는데 그 시점을 얼마 남겨두지 않은 시점에서 qbs에 대해서 다뤄보려한다.

공식 기사 : https://www.qt.io/blog/2018/10/29/deprecation-of-qbs

 

이 시점에 qbs에 대해 다루는 이유는 qbs가 가진 장점이 분명히 있기 때문이다. (비록 qt에서 버리기로 발표하였지만...) qbs프로젝트가 어떻게 흘러갈지 모르겠지만 독자적인 오픈소스프로젝트로 성장해 나갈 가능성도 있다고 본다.

 

Qbs는 다음과 같은 장점 및 특징이 있다.

  • 쉬운 언어를 사용
  • 플랫폼 및 프로그래밍 언어에 독립
  • 정확하고 빠른 증분 빌드
  • 확장 가능한 아키텍처
  • IDE에 쉽게 통합

 

Qbs소개

초기 qmake를 개선, 대체할 목적으로 시작된 Qt Build Suite, 즉 qbs ("Cubes"로 발음) 프로젝트는 다양한 플랫폼에서 소프트웨어 프로젝트의 빌드 프로세스를 편리하게 관리하도록 설계된 빌드 자동화 도구이다. (qbs사용법을 보면 yocto프로젝트의 레시피 작성 컨셉과 비슷한 느낌이 든다.)

 

qmake와 달리 qbs는 Qt 버전과 연결되어 있지 않으며 프로그래밍 언어, 툴킷 또는 사용 된 라이브러리에 관계없이 모든 소프트웨어 프로젝트에 사용할 수 있으며 커머셜 또는 LGPL 오픈소스 라이센스로 사용할 수 있다.

 

Qbs는 프로젝트 파일의 정보를 기반으로 응용 프로그램을 빌드한다. 프로젝트파일(*.qbs)은 최근 많은 Qt 프로젝트에서 사용되는 QML 언어로 작성된다. 

QML은 간결하고 배우기 쉽고 직관적인 언어이긴 하지만 qbs의 QML 아이템들의 사용법등을 익히려면 초기 어느정도 학습기간이 요구된다. 

 

다음은 QtCreator에서 생성한 가장 일반적인 형태의 프로젝트 파일인데 간단한 프로젝트여서 그런지 실제로 굉장히 심플한 느낌이다.

import qbs

CppApplication {
    consoleApplication: true
    files: "main.c"

    Group {     // Properties for the produced executable
        fileTagsFilter: "application"
        qbs.install: true
        qbs.installDir: "bin"
    }
}

 

각 프로젝트 파일은 하나의 project와 하나이상의 product를 포함 할 수있다. 이 프로젝트파일은 product에서 파생한 CppApplication을 정의한 모습이다.

 

Qbs 설치방법

Qbs 는 Windows, macOS, Linux 및 FreeBSD에서 사용할 수 있으며 Qt 인스톨러로 Qt Creator를 설치했다면 Qt Creator의 bin 디렉토리에서 qbs 실행 파일을 찾을 수 있다.

 

사전 빌드된 Qbs만을 설치하려면 다음과 같은 방법으로 가능하다.

 

Windows 용 바이너리 (x86 및 x64)는 다음 링크 페이지에서 제공한다.

https://download.qt.io/official_releases/qbs/

 

macOS에서는 MacPorts 또는 Homebrew 패키지 관리자를 사용하여 편리하게 설치할 수 있다.

brew install qbs

or

port install qbs

 

Linux 에서는 배포판의 패키지 관리 시스템을 통해 사용할 수 있다.(다음은 우분투에서 패키지를 설치하는 방법이다.)

sudo apt install qbs

 

다음은 qbs의 공식 저장소이다.

https://code.qt.io/cgit/qbs/qbs.git

 

공식 저장소 미러

https://github.com/qbs/qbs

 

다음 글에서 실제 활용법을 소개 하도록 하겠다.

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 85726
178 가상키보드(Qt Virtual Keyboard)를 사용하는 방법 [32] file makersweb 2019.05.03 220765
177 콘솔에서 사용자 입력받기 file makersweb 2020.03.22 51838
176 QString 문자열 다루기 예제 운영자 2019.01.26 39943
175 Windows에서 Qt 설치 따라하기 file makersweb 2019.10.14 30849
174 Qt의 시그널 슬롯 시스템 file makersweb 2015.10.20 23540
173 QThread 소개 및 예제 makersweb 2019.12.25 19389
172 QtCreator Design으로 GUI만들기 (QML로 만드는 Hello World -2) [1] file makersweb 2019.05.26 14837
171 초보자를 위한 첫번째 프로젝트 - QML로 만드는 Hello World file makersweb 2018.03.16 14426
170 Qt 프로그래밍의 시작 makersweb 2015.10.25 14359
169 Qml과 C++로 구현하는 GUI어플리케이션 file makersweb 2018.12.25 13905
168 QML과 QtQuick 모듈 개념과 기본 타입들 makersweb 2019.04.26 13374
167 Windows에서 라즈베리파이3용 Qt5.10.0 크로스컴파일 [20] file makersweb 2018.02.23 12865
166 Qt의 오픈소스 라이센스 소개 file makersweb 2019.12.15 12522
165 Qml 기본 컴포넌트 강좌 (1) file makersweb 2019.01.03 12046
164 QtSerialPort를 사용한 시리얼(Serial)통신 [3] makersweb 2019.05.21 11865
163 Qt Installer Framework - 패키징, 설치프로그램 제작 file makersweb 2018.10.14 11644
162 Qt 응용프로그램 배포(windows) file makersweb 2018.10.10 11289
161 Ubuntu Linux에서 Qt Creator 설치 file makersweb 2016.03.06 10665
160 Qt의 스레드간 시그널 슬롯의 커넥션타입 [1] makersweb 2015.10.24 10153
159 QML 강좌 - 동적 Listing (ListView) file makersweb 2019.06.01 10074