API

Riverbed Modeler에서 외부 라이브러리 사용 설정

본 포스트에서는 [외부 라이브러리 빌드]와 같은 과정으로 얻은 외부 라이브러리 파일들을 Riverbed Modeler에서 사용 설정하는 방법에 대해 설명하고자 한다. Riverbed Modeler에서도 [Visual Studio에서 외부 라이브러리 사용 설정]과 같이, 다음 폴더에 포함된 파일들에 대해 사용 설정을 해주어야 한다. 헤더: include 폴더 동적 라이브러리: bin 폴더 정적 라이브러리: lib 폴더 먼저 아래 그림과 같이 Riverbed Modeler를 실행한다. 다음으로 ‘Edit > Preferences’를 선택해서, 아래와 같이 새로운 창을 연다. 헤더 파일 사용 설정을 위해, ‘Compilation Flags for All Code’를 검색해서 ‘/W3 /DOP_ODK_APIS /D_CRT_SECURE_NO_DEPRECATE’ 뒤에 다음과 같이 입력해준다. ‘/I{헤더 파일 경로}’ 헤더 파일 사용 설정 후, 정적 라이브러리 경로 지정을 위해 ‘Common Network Repositories Flags’를 검색해서 다음과 같이 입력해준다. ‘/LIBPATH:{정적 라이브러리 경로}’ 또한, 정적 라이브러리 경로를 Path에 추가한다. 다음으로, ‘Common Network Repository Libraries’를 검색해서 사용하고자 하는 정적 라이브러리의 이름(lib 폴더 내부에서 먼저 확인 필요)을 지정해준다. 사용하고자 하는 정적 라이브러리 파일이 여러 개일 경우, 파일 이름들은 띄어쓰기로 구분된다. 마지막으로, 동적 라이브러리 경로에 있는 dll 파일들을 다음 경로에 복사한다. 32비트 환경: {Riverbed Modeler 설치 경로}\{설치된 Riverbed Modeler 버전}\sys\pc_intel_win32\bin 64비트 환경: {Riverbed Modeler 설치 경로}\{설치된 Riverbed Modeler 버전}\sys\pc_amd_win64\bin [Riverbed Modeler 컴파일러 선택 유의사항]에서 확인할 수 있듯이, Riverbed Modeler(구 OPNET Modeler)는 Visual Studio 2013 이하 버전을 지원한다. 따라서, 외부 라이브러리 사용을 위해 위와 같은 번거로운 과정을 거칠 필요가 있다. 그러나, [Riverbed Modeler 18.10.0 발표]에서 Visual Studio 2015 이상을 지원한다는 내용을 확인했다. 이는 [vcpkg를 이용한 외부 라이브러리 사용 설정]에 작성한 vcpkg 사용을 위한 준비사항을 만족한다. 위 근거를 바탕으로, 필자는 Riverbed Modeler에서도 vcpkg를 이용한 외부 라이브러리 사용 설정이 가능할 것으로 생각하지만, 추후 테스트를 통해 확인이 필요하다.

vcpkg를 이용한 외부 라이브러리 사용 설정

[vcpkg]는 마이크로소프트에서 개발한 크로스 플랫폼 오픈 소스 패키지 관리자이다. vcpkg를 이용할 경우, 외부 라이브러리를 사용하기 위해 [외부 라이브러리 빌드] 및 [Visual Studio 프로젝트에서 외부 라이브러리 사용 설정]와 같은 번거로운 과정을 거칠 필요 없다. 본 포스트에서는 vcpkg를 설치하고, 이를 이용하여 원하는 패키지를 설치 및 사용 설정하는 과정에 대해 설명하고자 한다. [vcpkg 설치 및 사용 가이드]의 확인 결과, vcpkg를 설치 및 사용하기 위해 다음과 같은 준비가 필요하다. Windows 7 이상의 운영체제 [Git] 설치 [Visual Studio] 2015 Update 3 이상의 IDE 위 사항이 준비된 이후, 윈도우 커멘드 창을 열어 다음과 같이 입력한다. git clone https://github.com/Microsoft/vcpkg.git .\vcpkg\bootstrap-vcpkg.bat 다음으로, 배치파일 실행 이후 생성된 vcpkg.exe의 경로를 Path에 추가해야 한다. vcpkg.exe는 C:\Users\{사용자 계정 폴더명}\vcpkg에 포함되어 있으며, 윈도우 11 기준으로 다음과 같은 과정을 거쳐 Path에 추가할 수 있다. ‘내 PC’ 아이콘 우클릭 후, ‘속성’ 버튼 클릭 ‘시스템 > 정보’에서 ‘고급 시스템 설정’ 버튼 클릭 ‘환경 변수’ 버튼 클릭 ‘시스템 변수’에서 Path 편집창 열기 ‘새로 만들기’ 버튼 클릭 vcpkg.exe 경로 입력 ‘확인’ 버튼 클릭 이제 vcpkg가 설치되었으며, 사용 가능하다. 사용하고자 하는 패키지를 설치 및 사용하기 위해, 윈도우 커멘드 창을 다시 열어 다음과 같이 입력한다. vcpkg install {설치할 패키지 이름}:x64-windows vcpkg integrate install 필자는 64비트 환경을 사용하기 때문에, vcpkg install 명령어 및 설치할 패키지 이름 이후에 :x64-windows를 붙여주었다. 하지만, 32비트 환경을 사용할 경우에는 설치할 패키지 이름까지만 입력하면 된다. vcpkg integrate install 명령어를 입력하면, 추후 별도의 라이브러리 사용 설정 없이 패키지 사용이 가능하다. 설치된 외부 라이브러리는 C:\Users\{사용자 계정 폴더명}\vcpkg\installed\x64-windows 또는 C:\Users\{사용자 계정 폴더명}\vcpkg\installed\x86-windows 폴더 내에서 관리된다.

VIsual Studio에서 외부 라이브러리 사용 설정

본 포스트에서는 [외부 라이브러리 빌드]와 같은 과정으로 얻은 외부 라이브러리 파일들을 Visual Studio 프로젝트에서 사용 설정하는 방법에 대해 설명하고자 한다. 라이브러리는 다음과 같이 폴더별로 저장된다. 헤더: include 폴더 동적 라이브러리: bin 폴더 정적 라이브러리: lib 폴더 따라서, Visual Studio에서 외부 라이브러리를 사용하기 위해서는 위 폴더에 포함된 파일들에 대해 사용 설정을 해주어야 한다. 먼저 아래 그림과 같이 프로젝트 속성창을 연다. 다음으로, ‘C/C++’ 또는 ‘C/C++ > 일반’에서 ‘추가 포함 디렉터리’의 편집창을 열어 헤더 경로를 지정해준다. 필자는 일반적으로 include 폴더의 경로를 지정해주면 되는 것으로 알고있다. 하지만, [Mongo C Driver 사용 가이드]를 참조하여, 아래 그림과 같이 include 폴더 내부 libbson-1.0 및 libmongoc-1.0 폴더의 경로를 지정했다. 헤더 경로를 지정한 후, ‘디버깅’에서 ‘환경’을 다음과 같이 편집해서 동적 라이브러리의 사용 설정을 수행한다. path={동적 라이브러리 경로};%PATH% 헤더 및 동적 라이브러리와는 달리, 정적 라이브러리 사용 설정을 위해서는 경로 및 파일명을 모두 지정해주어야한다. 먼저, 다음 그림과 같이 ‘링커’ 또는 ‘링커 > 일반’에서 ‘추가 라이브러리 디렉터리’의 편집창을 열어 경로를 지정해준다. 마지막으로, 다음 그림과 같이 ‘링커 > 입력’에서 ‘추가 종속성’의 편집창을 열어 사용하고자 하는 정적 라이브러리의 이름(lib 폴더 내부에서 먼저 확인 필요)을 추가 지정해준다.

외부 라이브러리 빌드

본 포스트에서는 윈도우에서 CMAKE와 Visual Studio를 이용해서 MongoDB C Driver를 빌드하는 과정을 예로, IDE에서 기본 제공하지 않는 외부 라이브러리를 빌드하는 과정에 대해 설명하고자 한다. 기본 준비사항은 다음과 같다. [Visual Studio] 설치 [CMAKE] 설치 [MongoDB C Driver] 소스코드 다운로드 위 사항들이 준비되면 먼저 다운로드한 MongoDB C Driver의 압축을 해제하고, 아래 그림과 같이 cmake_build 폴더를 생성한다. 다음으로, CMAKE를 실행시켜 다음 설명 및 그림과 같이 빌드를 위한 경로를 설정한다. ‘Where is the source code’: MongoDB C Driver의 압축해제 경로 ‘Where to build the binaries’: 위에서 생성한 cmake_build 폴더의 경로 ‘Generate’ 클릭 아래 그림과 같이 컴파일러를 선택하기 위한 창이 생성되면, 설치된 Visual Studio 버전에 맞는 컴파일러를 선택한 후에 ‘Finish’를 클릭한다. 위와 같은 과정을 거친 결과, 다음과 같이 에러 화면을 확인할 수 있었다. CMAKE 윈도우 버전에서는 빌드 옵션을 토글 및 입력 가능한 창을 제공한다. 따라서, ‘CMAKE_INSTALL_PREFIX’ 및 ‘MONGOC_TEST_USE_CRYPT_SHARED’를 기본값과 다르게 설정했다. 필자가 설정한 빌드 옵션들은 다음과 같은 의미를 갖는다. ‘CMAKE_INSTALL_PREFIX’: 빌드 결과가 생성될 경로 ‘MONGOC_TEST_USE_CRYPT_SHARED’: 클라이언트 암호화 테스트를 위해 crypt_shared 라이브러리를 다운로드하여 사용, Python 3를 필요로 하기 때문에 Disabled로 설정 에러 창 확인 및 빌드 옵션 재설정 후에 다시 ‘Generate’를 클릭하면, 다음 그림과 같이 cmake_build 폴더 내부에 ‘ALL_BUILD.vcxproj’와 ‘INSTALL.vcxproj’가 생성된 모습을 확인할 수 있다. 이 두 파일을 열어서 각각 ‘빌드’ 및 ‘다시 빌드’한다. 드라이버 빌드가 완료되면, 아래 그림과 같이 ‘CMAKE_INSTALL_PREFIX’에서 설정한 경로에 라이브러리가 생성된 모습을 확인할 수 있다.