목표: 라이브러리 설치 및 예제 컴파일

작성일: 2022-01-04

환경: windows10 64bit, visual studio 2022 community

 

visual studio 설치

간만에 visual studio를 설치하는데 전과 다르게 뭔가 선택하는게 많아졌더군요. 그냥 설치했더니 콘솔 빈 프로젝트도 생성이 안되서 검색후 위와 같이 선택하고 설치하였습니다.

gstreamer library 설치

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

+ Recent posts