$ git clone --recurse-submodules -b v1.20.0 https://github.com/grpc/grpc
$ cd grpc
$ make
하지만 여기서 make error가 발생한다.
오류 : error: ambiguating new declaration of ‘long int gettid()’ 이유 : GCC 9 리드 솔루션 출처 : Github에서 / GRPC : # 20043 해결 방법 : src/core/lib/gpr/log_linux.cc, src/core/lib/gpr/log_posix.cc, src/core/lib/iomgr/ev_epollex_linux.cc이 파일은 gettid() --> local_gettid()로변경
다시 make를 실행하면 다음과 같이 Error가 또 발생.
Error 내용은 모든 warning을 Error로 처리하면서 발생하는 문제이다.
이 warning을 수정하는게 정석이지만, 일단은 다음과 같이 컴파일러 옵션을 추가하여 문제를 해결한다.
위의 "필수 라이브러리 및 파일" 섹션에서 다운로드한 파일들을 다음 설명을 참고로 src 폴더 안에 Sub 폴더(conf, include, lib)에 위치 시킨다.
나머지 설명은 참고 사항이다.
conf/ : 호출어 모델 파일 저장 위치
include/ : SDK용 헤더파일 저장 위치 (ginside.h, ginsidedef.h)
lib/ : SDK 라이브러리 저장 위치 (libginside.so, libKwsRnet.so)
key.txt : API Link에서 발급받은 개발키 정보를 저장
server_info.txt : G-INISDE 개발 서버 정보 저장
test_sample.cpp : sample app main 소스
Linux용 Sample 빌드
sample-client-linux-grpc를 다운로드 후 src/ 로 이동
Makefile에서 lpthread, lcjson, lasound 라이브러리와 헤더파일의 위치를 수정한다.
1. cJSON
- 변경 전
CFG_INC = -I./include -I/usr/include -I/usr/local/include -I/usr/local/include/cjson
- 변경 후
CFG_INC = -I./include -I/usr/include -I/usr/local/include -I/home/mskim/cJSON
SDK 라이브러리, 헤더파일, 호출어 모델 파일 등을 lib/, include/, conf/ 디렉토리에 각각 복사하고 Makefile에서 경로 정보를 수정한다.
실제 발급받은 클라이언트 키값을 key.txt 파일에 하기 설명 부분을 지우고 동일한 자리에 입력한다.
YOUR-CLIENT-ID
YOUR-CLIENT-KEY
YOUR-CLIENT-SECRET
make 명령어 실행 전에 test_sample.cpp 파일에서 다음 header 파일의 위치를 수정 해야 한다.