목표: 라이브러리 설치 및 예제 컴파일
작성일: 2022-01-04
환경: windows10 64bit, visual studio 2022 community
간만에 visual studio를 설치하는데 전과 다르게 뭔가 선택하는게 많아졌더군요. 그냥 설치했더니 콘솔 빈 프로젝트도 생성이 안되서 검색후 위와 같이 선택하고 설치하였습니다.
gstreamer 공식 사이트의 Download 페이지에서
위 두 링크를 다운받았습니다.
runtime은 gstreamer 바이너리 프로그램을 설치하는 것이고 develop이 라이브러리인 것으로 보입니다. 저는 둘다 받았습니다. 프로그램의 경우 사용하시려면 환경변수를 등록하는 것이 좋습니다.
다운로드 후 내용입니다.
bin 폴더에는 동적 라이브러리(*.dll),
lib 폴더에는 정적 라이브러리(*.lib),
include 폴더에는 헤더 파일(*.h)가 들어있습니다.
일단은 visual studio를 설치했음으로 hello world를 한 번 돌려보았습니다.
..만 위와 같은 에러가 발생했습니다.
폭풍 검색후 위 그림처럼 솔루션 탐색기에서 프로젝트를 선택한 후 "프로젝트 속성" - "VC++ 디렉터리" 메뉴에서 "포함 디렉터리" 항목과 "라이브러리 디렉터리"에 각각 "C:\Program Files (x86)\Windows Kits\10\..." 경로를 추가하였습니다.
"포함 디렉터리"에는 C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt
"라이브러리 디렉터리"에는 C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10240.0\ucrt\x64
를 추가하였습니다.
결과
빌드 성공입니다.
예제 코드를 복붙하였습니다. 코드는 GStreamer Document 사이트의 Basic tutorial 1: Hello world! 코드입니다.
헤더 파일을 열 수 없다는 에러가 발생합니다. 헤더 경로를 추가합니다.
"프로젝트 속성" - "C/C++" - "일반" - "추가 포함 디렉터리"를 편집하면되며 빌드 돌려보고 에러나는 헤더파일이 있는 위치를 하나씩 넣어주면 됩니다.
제가 해본 결과 아래 4개 경로를 추가하니 됐습니다.
C:\gstreamer\1.0\msvc_x86_64\include\gstreamer-1.0 C:\gstreamer\1.0\msvc_x86_64\include\glib-2.0 C:\gstreamer\1.0\msvc_x86_64\include C:\gstreamer\1.0\msvc_x86_64\lib\glib-2.0\include |
이번엔 링크 에러입니다.
"프로젝트 속성" - "링커" - "일반" - "추가 라이브러리 디렉터리"에 라이브러리 경로를 입력합니다.
C:\gstreamer\1.0\msvc_x86_64\lib |
"프로젝트 속성" - "링커" - "입력" - "추가 종속성"에 필요한 라이브러리를 입력합니다.
gstreamer-1.0.lib glib-2.0.lib |
빌드 성공입니다.
추가로, 일단 저는 범용적인 이름의 라이브러리를 넣다보니 됐습니다만... 필요한 라이브러리가 무엇인지 어떻게 알 수 있을까요? 라는 궁금증이 생겼습니다.
일단 documents에서 함수-라이브러리 관계를 찾는 것이 1번일 것입니다. 그런데, 물론 제가 못 찾는거겠지만... 못찾겠습니다... 방법을 생각하다가 *.lib 파일을 vim으로 열어보니(물론 바이너리지만) 함수 이름이 text로 들어가는 것을 확인했습니다. 즉, 2번 방법으로는 grep 또는 그와 유사한 것으로 lib 경로에서 함수명으로 검색해서 함수가 들어있는 library를 찾을 수 있을 것 같습니다. (아래는 wt; windows terminal(ubuntu)에서 grep을 사용한 결과입니다.)
찾아보니 powershell에서도 select-string(sls)라는 것을 통해 찾을 수 있을 것 같습니다.
아무튼 실행 결과 콘솔창과 더불어 아래와 같은 창이 열리며 예제 영상이 나옵니다.
gstreamer 처음인데 영상나오니까 신기하네요. ㅎㅎ
열심히 공부해봐야겠습니다.
'개발 > c' 카테고리의 다른 글
[번역][gstreamer] basic tutorial 1: Hello world! (0) | 2022.01.11 |
---|---|
[번역][gstreamer] Tutorials을 시작하며... (0) | 2022.01.10 |
[백준] 15683 감시 (0) | 2020.05.09 |
[백준] 16236 아기 상어 (0) | 2020.04.28 |
[백준] 17825 주사위 윷놀이 (0) | 2020.04.24 |