10. 프로젝트 설정
당연한 얘기지만, 모든 프로젝트를 선택해서 설정하면 C/C++ 항목이 표시되지 않는다.
이 점을 신경 써서 C/C++ 항목이 표시되는 모든 프로젝트에 대해 다음의 전처리기를 정의한다.
이 부분은 빼도 상관은 없지만, 경고가 너무 많이 표시되어 보기 싫기 때문에 하는 것을 추천.
_WINSOCK_DEPRECATED_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS
그리고, 하는 김에 다중 프로세서 컴파일을 예(/MP)로 설정한다.
환경에 따라 다르지만 요즘 환경이라면 적어도 2배 이상은 더 빨리 컴파일된다.
11. /bigobj 설정
몇몇 프로젝트는 섹션 수가 한도를 초과한다는 메시지와 함께 컴파일 실패가 발생한다.
이 프로젝트들은 C/C++ 명령줄에서 /bigobj를 설정해줘야 한다.
대상 프로젝트들은 DCPSInfoRepo_Federator, OpenDDS_Dcps, OpenDDS_monitor, RtpsRelayLib.
여기까지 하면 드디어 컴파일이 되는 모습을 볼 수 있다.
12. 개발 어플의 프로젝트 설정
여기까지 하면 다 된 것 같지만, 세상이 그렇게 호락호락하지 않다.
예제에 나온 대로 프로젝트를 만들어서 빌드해보면 당장 링킹 오류가 터진다.
이유는 간단하다. 전처리기를 추가로 정의해줘야 되기 때문이다.
OpenDDS를 빌드할 때 static 모드로 빌드했는데, 이 것을 프로젝트에도 정의해줘야 정상적으로 빌드된다.
이 것을 포함해서 몇 개 더 전처리기에 정의해주면 경고를 대폭 줄일 수도 있어서 추천.
ACE_AS_STATIC_LIBS
_WINSOCK_DEPRECATED_NO_WARNINGS
_CRT_SECURE_NO_WARNINGS
여기까지 오는데 딱 3주가 소요됐다...
그 동안 확인한 내용들을 깃허브에 Pull Request도 올렸지만, reject 되기도 했고...