[과제] 1주차) 프로젝트 작업환경 구축 이주연 #24
juyonLee00
started this conversation in
Blog
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
프로젝트에 기여하기 위해서는 우선 해당 프로젝트에 대해 알아보고 파악하는 과정이 필요합니다. 그러므로 로컬에 ThorVG 개발 환경을 구축하고, 예제를 실행해 보았습니다.
목차
1. 작업 환경
이 글의 작업 환경은 다음과 같습니다.
운영체제 : macOS Sequoia 15.7.7
CPU 아키텍처 : x86_64
컴파일러 : Apple Clang 17.0.0
패키지 관리자 : Homebrew
2. 의존성 설치
기존 컴퓨터의 작업 환경을 확인하고 ThorVG 실행을 위한 의존성을 추가로 설치해야 합니다. 기본적으로 필요한 의존성은 Meson과 Ninja입니다.
2.1. Meson
Meson은 프로젝트의 meson.build를 해석하여 컴파일 옵션, 빌드 대상, 플랫폼별 설정 및 의존 관계를 구성하는 빌드 시스템입니다.
패키지 매니저를 이용해 Menson을 설치합니다. (이미 설치되어 있다면 업데이트를 진행합니다.)
2.2. Ninja
Ninja는 Meson이 생성한 build.ninja에 따라 빌드를 수행하는 빌드 실행 프로그램입니다.
2.1과 동일한 방식으로 Ninja를 설치합니다.
2.3. 추가 의존성 설치
여기서는 추가로 sdl2, pkgconf 의존성과 libomp 라이브러리를 설치했습니다.
sdl2는 예제 프로그램의 윈도우 생성, 입력, 종료 등의 이벤트와 실행 환경 구성을 위해 추가했습니다.
pkgconf는 Meson이 thorvg-1과 sdl2 의존성을 검색하여 정보를 빌드 명령에 전달하기 위해 추가했습니다.
libomp는 예제 실행 시 omp.h 헤더를 사용할 수 있게 하기 위해 추가했습니다.
3. ThorVG 저장소 준비
3.1 저장소 클론
실행 파일을 생성하기 위해 저장소를 클론합니다.
3.2. 저장소 내 Meson을 이용한 ThorVG 빌드 설정 생성
Meson을 이용해 빌드 설정을 생성합니다. 렌더링 엔진을 전부 활성화하기 위해서는 all, CPU/OpenGL/WebGPU 중 선택해서 키고 싶다면 cpu, gl, wg 중 원하는 것을 작성하면 됩니다.
3.3. 빌드
meson으로 만들어진 파일을 기반으로 빌드를 진행합니다. 실제 컴파일 명령을 자세히 보기 위해 -v 옵션을 추가했습니다.
성공적으로 빌드되었다면 해당 프로젝트를 컴퓨터에 설치합니다.
4. ThorVG Example 실행
ThorVG를 성공적으로 설치했으니 설치 여부를 예제를 이용해 시각적으로 확인해보겠습니다.
4.1. Example 저장소 클론
4.2. 빌드 진행
ThorVG 프로젝트에서 빌드했을 때와 같은 방법으로 빌드를 진행합니다.
4.3. 실행 결과
아래와 같은 명령어로 실행하면 예제 실행 결과는 다음과 같습니다.
2026-07-19.8.16.17.mov
실행 파일 목록에 존재하는 여러 예제들을 실행해볼 수 있습니다. 여기서 기본 sw 엔진이 아닌 WEBGL, GL 등을 사용하려면 뒤쪽에 추가 옵션을 추가하면 됩니다. (아래는 GL의 예시입니다)
6. 발생한 문제와 해결 방법
6.1. cmath file not found
Ninja로 빌드 파일을 생성할 때(3.3) cmath 파일을 찾지 못한다는 에러가 떴습니다. 아무래도 vscode를 사용하면서 설치되었던 xcode를 지우는 과정에서 안에서 꼬인 것 같습니다..
일단 ThorVG를 실행해야 하므로 cpp 표준 라이브러리 헤더, macOS SDK 등이 포함된 Command Line Tools를 재설치하여 해결했습니다.
추가로 빌드 파일을 생성할 때 에러가 났으면 빌드 파일들이 포함된 폴더를 삭제하고 해당 폴더를 다시 만들면서 빌드하는 것을 권장합니다.
All reactions