반응형

 

VS 환경에서 OpenDDS를 컴파일하는 것 자체는 그렇게 어려운 일이 아니다.

다운을 받아 압축을 풀고 configure.cmd를 실행시킨 뒤 VS로 컴파일하면 된다.

컴파일 오류가 몇 개 발생하긴 하지만 잘 고쳐보면 된다. 그럼 쉬운 게 아니잖아.

 

하지만, 이걸 정말로 써먹을 수 있도록 컴파일하는 것은 쉽지 않다.

앞 글에서도 얘기했듯이 윈도우에서 제대로 쓸 수 있는 수준에 맞춰야 하는데 쉬울리가...

 

현 시점에서 릴리즈된 OpenDDS의 최신 버전은 3.18.1이다.

이 버전은 공식적으로 VS2019 까지만을 지원한다.

VS2019 사용자라면 그냥 쓰면 되지만, VS2022 사용자라면 선택을 해야 한다.

configure를 좀 수정하거나 이후 버전[각주:1]을 다운받아야 한다.

 

 

0. 사전 준비

물론 이 작업을 하려면 비주얼 스튜디오를 설치해둬야 한다.

VS2019, VS2022 모두 사용 가능하며, 개인 사용자에게는 완전히 무료인 Community 버전이 있다.

그리고, OpenDDS를 설치하려면 Perl을 설치해둬야 한다.

윈도우 환경에서는 Strawberry Perl을 추천하고 있다.

 

1. 다운로드 및 압축 해제

원하는 소스를 선택한 뒤 다운받아 작업할 폴더에 압축을 해제한다.

압축을 해제하는 위치는 어디라도 상관은 없지만, 아무래도 루트 폴더에 가까운 위치일수록 손이 덜 가는 것 같다.

난 그냥 c:\OpenDDS에서 작업하기로 함

 

2. configure 수정

3.18.1 또는 이전 버전을 다운받아서 VS2022로 작업한다면 루트 폴더에 있는 configure 파일을 확인해야 한다.

파일에서 다음과 같은 부분을 찾는다.

 'cl_versions' => {13.1 => 'vc71', 14 => 'vc8', 15 => 'vc9',
                   16 => 'vc10', 17 => 'vc11', 18 => 'vc12',
                   19 => 'vc14', 19.1 => 'vs2017',
                   19.2 => 'vs2019'},

 

이 부분의 마지막 줄을 아래와 같이 수정한다.

 'cl_versions' => {13.1 => 'vc71', 14 => 'vc8', 15 => 'vc9',
                   16 => 'vc10', 17 => 'vc11', 18 => 'vc12',
                   19 => 'vc14', 19.1 => 'vs2017',
                   19.2 => 'vs2019', 19.3 => 'vs2019'},

 

vs2022가 아니라 vs2019라는 점에 유의할 것.

 

3. configure.cmd 실행

단지 configure.cmd를 실행하기만 하면 컴파일 가능한 OpenDDS 관련 소스들을 모두 설치해주고 컴파일 준비를 다 해준다.

그런데, 실제로 쓰기엔 뭔가 2% 부족하다.

앞의 포스팅에서 얘기한 static/dll 모드 선택부터 여기선 다루지 않을 ACE/TAO 선택을 포함한 많은 설정을 할 수 있다.

 

다음 단계 진입을 위해선 그냥 명령행을 띄우는 것보다는 비주얼 스튜디오의 명령행을 띄우는 것이 좋다.

일단, 본 포스팅에선 static 모드만을 다룰 것이라 다음과 같이 입력한다.

configure.cmd --static

 

필요한 ACE/TAO 버전을 다운받아 압축을 풀고, 필요한 비주얼 스튜디오 솔루션 파일을 생성하는 작업이 진행된다.

 

4. 수정 #1

계속 얘기했듯이 wchar_t를 사용하게 하려면 약간 손을 대야 한다.

정적 라이브러리 MFC도 마찬가지고.

 

일단 ACE_wrappers\ace\config.h 파일을 편집기로 열면 아래와 같다.

#include "ace/config-win32.h"

 

여기에 아래와 같이 두 행을 추가한다.

#define ACE_USES_WCHAR 1
#define ACE_USES_STATIC_MFC 1
#include "ace/config-win32.h"

 

5. 비주얼 스튜디오 실행

정상적으로 비주얼 스튜디오의 명령행을 실행한 상태라면, 다음을 실행하면 VS에서 OpenDDS 솔루션을 연다.

devenv DDS_TAOv2.sln

 

6. 수정 #2

여기까지가 OpenDDS에서 공식적으로 얘기하는 설치 준비과정이다.

하지만, 이대로 빌드해보면 빌드가 되지 않는다...

 

우선 솔루션 탐색기에서 모든 프로젝트[각주:2]를 선택해서 MFC 사용문자 집합을 아래와 같이 수정한다.

 

 

다음 글에서 계속…

 

 

  1. 최신 빌드에선 VS2022를 지원함 [본문으로]
  2. '모든' 프로젝트라는 게 있다는 게 아니라 프로젝트 전체를 모두 선택해야 된다는 뜻 [본문으로]
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band