← 과제 목록

[과제] 1주차) 프로젝트 작업환경 구축 채다희

@chae-dahee
  • #과제
목차

과제 요구사항

ThorVg 프로젝트에 대한 개발 환경을 구성한다.

아래 ThorVG 메인 레포를 클론하여 ThorVG 작업환경을 개인 로컬에 셋업하고, example 구동을 통해 이를 검증한다. 작업환경 구축에 대한 내용은 README 또는 ThorVG 튜토리얼을(Installation 항목)을 참고한다.

환경

OS: macOS Tahoe 26.5.2 아키텍처: Apple Silicon(aarch64) 컴파일러: Apple Clang 21.0.0 링커: ld64 빌드 시스템: Meson + Ninja 패키지 매니저: Homebrew 터미널: zsh

저장소 Fork 및 Clone

원본 저장소를 개인 레포지토리로 Fork 한다. Fork 한 개인 레포지토리 코드를 로컬 pc 에 clone 내려받는다. git clone https://github.com/chae-dahee/thorvg.git git clone https://github.com/chae-dahee/thorvg.example.git

빌드 환경 구성

튜토리얼에 따르면 ThroVG 는 Meson 빌드 시스템을 지원하기 때문에 Meson 과 Ninja 를 설치해야한다. brew install meson ninja pkgconf sdl2 libomp

  • meson
    • ThorVG, thorvg.example 빌드 설정 생성
  • ninja
    • Meson이 생성한 빌드 설정을 실제로 컴파일
  • pkgconf = pkg-config 명령
    • thorvg.example에 설치된 thorvg-1과 sdl2를 찾을 때 필요하다.
  • sdl2
    • 예제 창 생성, 입력 및 화면 출력
    • Animation을 포함한 thorvg.example 실행 파일의 필수 의존성
  • libomp (OpenMP 관련 오류 참고)
    • Apple Clang에서 OpenMP 헤더 omp.h와 런타임 라이브러리를 제공한다.
    • ThorVG의 CPU 렌더링 작업을 병렬화하는 데 사용된다.

ThorVG 빌드 및 설치

thorvg 루트폴더로 이동하여 아래 명령어로 설치한다.

# 빌드 환경 구성
meson setup builddir
# ThorVG 컴파일
ninja -C builddir
# ThorVG 라이브러리, 헤더 설치
ninja -C builddir install

OpenMP 관련 오류

../src/renderer/cpu_engine/tvgSwRenderer.cpp:28:14: fatal error: 'omp.h' file not found
   28 |     #include <omp.h>
      |              ^~~~~~~
1 error generated.
[15/211] Compiling C++ object sr...p/loaders_svg_tvgSvgLoader.cpp.o
ninja: build stopped: subcommand failed.

ThorVG가 OpenMP 지원을 활성화한 상태인데 Apple Clang에서 omp.h를 찾지 못하고 있다. macOS의 Apple Clang에서 OpenMP 활성화: Homebrew로 libomp를 설치하고 재실행하면, Meson이 OpenMP를 자동으로 감지한다.

brew install libomp
rm -rf builddir
# 또는 meson setup builddir --wipe
#재실행
meson setup builddir
ninja -C builddir
ninja -C builddir install

thorvg-1 의존성

예제 빌드할때 Dependency "thorvg-1" not found 에러가 발생한다.

Mac 시스템 경로에 설치가 필요하다. sudo ninja -C builddir install

thorvg.example 구동

meson setup builddir && ninja -C builddir
  • meson setup builddir: 빌드 환경 설정
  • ninja -C builddir: 예제 실행 파일 컴파일

Animation 실행

./builddir/src/Animation 애니메이션 예제가 SDL 새 창에서 실행된다. 다른 예제 파일들도 동일한 방식으로 실행하면 된다. Animation 구동 image

댓글

Discussion 원문