TEUS.me

 
 

 

이전 포스팅들에서 OpenDDS를 Visual Studio 환경에서 컴파일하는 법을 정리했다.

이후 OpenDDS 자체의 변경사항도 있고, 뭔가 이상한 점이 확인되기도 해서 좀 더 정리함.

 

1. 3.18.1 → 3.19

깃허브에 올라온 공식 버전3.19로 업데이트 됐다.

그리고, 공식적으로 Visual Studio 2022를 지원한다.

최신 버전을 사용한다면 configure 파일을 수정할 필요가 없음.

 

2. static 모드 사용 비추

다양한 테스트들을 돌려봤는데, static 모드로 컴파일하면 DDS 통신이 제대로 되지 않는다.

TransportRegistry::create_inst() 함수가 오동작하는 것 같은데, 정확한 문제는 더 추적이 필요함.

일단은 정적 라이브러리에서 MFC 사용 옵션은 선택하면 안 된다고 봐야 한다.

 

01
표준 Windows 라이브러리 공유 DLL에서 MFC: 어느 쪽이든 상관 없음

 

3. configure.cmd 실행시 정확한 옵션 부여

이전엔 대충(?) configure.cmd 실행 후에 config.h 파일을 수정했다.

그게 올바른 순서가 아니라는 조언을 들었다.

 

일단 configure.cmd를 실행할 때 아래와 같이 옵션을 부여하고

configure.cmd --features=uses_wchar=1 --features=has_mfc=1

 

다음으로 config.h 파일을 수정해야 한다.

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

 

4. 소스 수정

이전 포스팅 이후에 해당 수정사항들(7, 8, 9)을 깃허브에 PR로 올렸다.

다운받은 소스가 반영되지 않은 버전이면 이 내용을 직접 수정해야 함

 

5. /bigobj 설정

지난 포스팅에도 동일하게 언급된 내용.

4개의 프로젝트들은 C/C++ 명령줄에서 /bigobj를 설정해줘야 한다.

대상 프로젝트들은 DCPSInfoRepo_Federator, OpenDDS_Dcps, OpenDDS_monitor, RtpsRelayLib.

 

 

6. 다중 프로세서 컴파일 추천

 

 

공유하기

facebook twitter kakaoTalk kakaostory naver band

댓글

비밀글모드