한국어
오픈소스포럼
 이곳은 다양한 오픈소스 프로젝트를 소개하고 리뷰, 활용 방법을 공유합니다.

Visual Studio Code 에서 Qbs 확장을 설치하고 C/C++ 프로그래밍을 할 수 있다. 이전에 Qbs는 Qt Creator 또는 Visual Studio에서만 사용할 수 있었다. 이 확장은 VSCode 의 확장 메뉴에서 사용할 수 있다. 현재 기준으로 Qbs 확장은 다음을 지원한다.

  • Qbs 프로젝트가 있는 디렉토리 열기
  • 프로젝트 파일 선택(최상위 디렉토리에 파일이 여러 개 있는 경우)
  • 프로필 선택
  • 구성 선택
  • 구축할 제품 선택
  • 터미널 또는 디버그에서 실행할 제품 선택

또한 Qbs 확장은 IntelliSense를 통한 정확한 C/C++ 코드 강조 표시와 Qbs 파일에 대한 기본 강조 표시를 제공한다.

 

종속성 설치

당연한 얘기지만 VSCode 가 설치되어 있어야 한다. 그리고 Qbs 도 1.16 이상이 필요하다. Qbs는 공식 다운로드 페이지나 여러 패키지 저장소(Chocolatey, MacPorts, Homebrew)에서 얻을 수 있다. 

VSCode 를 열고 확장에서 C/C++ 및 Qbs 확장 프로그램을 설치한다.

이미지 1.png

그리고 가장 중요한 툴체인이 준비되어 있어야 한다. 여기서는 MinGW 를 사용한다.

 

확장 설정

Qbs 확장 설정에서 qbs 실행 파일의 경로를 설정해야 한다. 설정하려면 '파일 → 환경설정 → 확장 프로그램'으로 이동하여 Qbs 확장 프로그램에서 '관리' 버튼을 클릭하고 '확장 프로그램 설정'을 선택한다. 다음으로 "Qbs Path" 필드에서 Qbs에 대한 경로를 설정한다.

이미지 4.png

 

설정을 끝내고 VSCode를 재시작 한다.

명령 팔레트 (Ctrl+<Shift>+P) 를 실행하고 QBS: detect profiles 를 입력하여 설치된 툴체인을 감지하도록 한다.

 

기존 qbs 프로젝트 폴더를 열 수 있다. 

open_folder.png

 

여기서 추가할 프로젝트는 다음과 같이 아주 간단하다.

qbsproject.png

 

main은 단순히 helloworld 를 출력한다.

main.cpp

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello World!" << endl;
    return 0;
}

 

이어서 CppApplication 프로젝트를 빌드하기 위해 작성한 example.qbs 파일이 있다.

example.qbs

import qbs

CppApplication{
    name: "example"
    files: ["main.cpp"]
}

 

구조는 다음과 같다.

이미지 3.png

 

빌드를 시작하기 전에 프로파일을 선택해줘야 한다. QBS: Select Profile 을 입력한다.

2021-09-10 (5).png

 

사용 가능한 프로파일 목록에서 선택한다. (필자는 mingw32 를 선택했다.)

2021-09-10 (10).png

 

그리고 qbs: select build configuration 명령이나 하단의 메뉴를 통해 릴리즈 또는 디버그 모드로 설정할 수 있다.

example.png

 

QBS: Build 명령을 입력하여 빌드를 실행해 보자.

2021-09-10 (11).png

 

QBS: Run 명령으로 빌드된 Application 을 실행 할 수 있다.

2021-09-10 (12).png

 

QBS: Debug 명령으로 디버그로 실행 할 수 있으며 일반적인 방법(F9 키로)으로 브레이크 포인트를 지정할 수 도있다.

 

프로젝트에 새로운 C++ 파일 을 추가하려면 "새 파일" 을 클릭하고 파일 이름을 입력한다.

add_file.png

 

MyApp.hpp와 MyApp.cpp 를 추가하고 example.qbs 에는 MyApp.cpp 를  추가 해줬다. 

import qbs

CppApplication{
    name: "example"
    files: ["MyApp.cpp", "main.cpp"]
}

 

main() 에서는 MyApp 객체를 생성하고 hello() 를 호출한다.

#include "MyApp.hpp"

int main()
{
    MyApp app;

    app.hello();

    return 0;
}

 

빌드 후 실행해 보자.

 

qbs 관련 전체 명령은 다음 링크에서 찾을 수 있다.

https://github.com/denis-shienkov/vscode-qbs/blob/master/docs/how-to.md#open-a-project

 
번호 제목 글쓴이 날짜 조회 수
35 openFrameworks 한글 폰트 설정 및 출력하기 file makersweb 2023.02.19 198
34 Flutter 위젯의 상태관리에 대해서 file makersweb 2023.04.06 450
33 OTA 오픈소스 프로젝트 makersweb 2022.08.03 471
32 도커(docker)설치 및 기본 명령어 makersweb 2019.12.02 482
31 CopperSpice 에 대해서 (C++ Gui 라이브러리) file makersweb 2022.01.02 537
30 라즈베리파이4에서 openFrameworks 예제 실행 file makersweb 2020.12.13 559
29 Windows에서 Qt Creator + CMake + vcpkg 로 C++ 개발환경 구성 (POCO 라이브러리 DirectoryWatcher 예제) file makersweb 2023.01.14 667
28 라즈베리파이에서 Redis의 Pub/Sub 패턴을 사용하는 Electron 응용프로그램 file makersweb 2021.01.31 681
27 Chromium과 Ozone 층 file makersweb 2022.03.03 728
26 윈도우에서 안드로이드 flutter 프로그래밍 개발환경 구축(with Visual Studio Code) file makersweb 2020.09.16 794
25 ZeroMQ 를 이용한 Qt 응용프로그램 간 통신 file makersweb 2021.08.28 832
» VSCode 와 Qbs 플러그인으로 C/C++ 개발환경 구성 file makersweb 2021.09.12 846
23 NAppGUI, C언어용 크로스 플랫폼 GUI 라이브러리 file makersweb 2022.10.10 861
22 Protocol Buffers 를 이용한 직렬화 with Conan Package Manager file makersweb 2021.02.24 862
21 C++를 위한 Lottie 라이브러리 with SDL2 file makersweb 2021.08.15 962
20 LVGL 을 통해 GUI 구현 시 한글 폰트 추가 file makersweb 2023.02.07 1082
19 [NodeGui] JavaScript로 데스크탑 응용프로그램 작성 file makersweb 2023.02.21 1086
18 Qt와 GStreamer 로 작성한 flac 오디오 재생 예제 file makersweb 2020.09.05 1139
17 Flutter/Dart 와 Qt/QML 비교 file makersweb 2021.11.07 1401
16 CANdevStudio 를 사용하여 CAN 네트워크 시뮬레이션 file makersweb 2021.03.09 1698