한국어
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 85361
96 QOpenVirtualkeyboard(Qt 5용 한글 및 영문, 숫자 가상키보드) file makersweb 2019.11.27 2221
95 Qt3D의 QML 타입으로 3D렌더링 file makersweb 2019.11.20 2503
94 라즈베리파이3에서 Boot to Qt 실행해보기 makersweb 2019.11.13 1651
93 Qt애플리케이션 객체(QCoreApplication, QGuiApplication, QApplication) 에 대해서 makersweb 2019.11.11 9982
92 Qt Quick 3D 소개 makersweb 2019.11.09 1429
91 QPushButton 의 커스텀 이미지버튼 file makersweb 2019.11.05 6314
90 qbs 사용 방법(Helloworld) file makersweb 2019.10.23 3089
89 웹기반 Qt Design Viewer [2] file makersweb 2019.10.23 1287
88 Qt Creator에서 Qt의존성 라이브러리 자동복사하기 file makersweb 2019.10.19 2133
87 Qt for Embedded Linux 화면출력 makersweb 2019.10.17 1586
86 Windows에서 Qt 설치 따라하기 file makersweb 2019.10.14 30791
85 Qbs 프로젝트를 정의하기 위해 사용되는 몇가지 중요한 아이템들 file makersweb 2019.10.13 286
84 많은 리소스를 사용하는 Qt프로젝트에서 고려해봐야 할 qmake 옵션 makersweb 2019.10.11 1230
» Qbs에 대한 소개와 설치하는 방법 makersweb 2019.10.09 1358
82 OpenGL 렌더링을 QtQuick과 통합하는 방법 file makersweb 2019.10.01 2149
81 QML내에서의 시그널, 슬롯 시스템 makersweb 2019.09.29 6861
80 컨테이너에 적재된 객체를 편리하게 삭제하기 makersweb 2019.09.18 1645
79 C++로 구현된 모델을 QML의 ListView에서 참조 file makersweb 2019.09.07 4883
78 QSocketNotifier로 파일 디스크립터의 활동감지 makersweb 2019.08.28 1714
77 MCU용 Qt에 대해서 makersweb 2019.08.22 1877