0

C++ 부스트 라이브러리에는 제공된 동기화 메커니즘이 있지만 매우 제한된 컴파일러 목록 만 지원합니다.다중 컴파일러를 지원하는 C++ 코드

우리는 서로 다른 컴파일러에 대한 더 넓은 지원을 제공하기 위해 우리 자신의 방식으로 동기화 메커니즘을 구현해야합니다. 즉, 우리는 다중 플랫폼 C++ 라이브러리를 작성하려고합니다.

저는 멀티 플랫폼 프로그래밍과 C++ 영역 (이전에는 자바 녀석)에 새로운 경험이 있습니다. 누군가 간단한 예제를 사용하여 시작할 수있는 방법을 보여 주시겠습니까?

답변

3

Boost는 준비가 된 솔루션을 제공하지 않을 수도 있지만, 다양한 컴파일러를 처리하기위한 많은 정보와 도구를 통합합니다. 어떻게 관리하는지 체크하고 코드 일부를 활용할 수 있는지 확인해보십시오. 당신의 자리에서 나는 Boost.Config으로 시작합니다.

1

Windows의 경우 이벤트 및 중요 섹션을 사용하십시오. UNIXy 플랫폼의 경우 pthreads mutex 및 조건 변수를 사용하십시오. 이러한 플랫폼을 지원하는 모든 컴파일러에서 작동해야합니다.

어떤 컴파일러를 지원해야합니까? Boost의 동기화 방법은 GCC, Intel의 C++ 컴파일러 및 Microsoft Visual Studio를 비롯하여 사용할 가능성이있는 거의 모든 컴파일러를 지원합니다.

+0

네가 맞아.하지만 내 상사가 충분하지 않아서 컴파일러에 대한 더 광범위한 지원을 제공하기 위해 그것을 확장하기를 원한다고 말했다. –

+0

당신이 지원하고 싶은 컴파일러를 물어보십시오. –

+0

내가 지원하고 싶은 상상 밖에 할 수없는 유일한 것들은 [clang] (http://en.wikipedia.org/wiki/Clang) (컴파일을 강화하는 것처럼 보임)과 [Comeau] (http : //en.wikipedia .org/wiki/Comeau_C/C % 2B % 2B) (나는 그것이 부스트를 컴파일한다고 생각한다). 지난 몇 년 동안 다른 컴파일러를 사용하는 사람은 들어 보지 못했습니다. –

0

부스트는 posix와 windows 동기화를 여러 컴파일러에서 일관된 인터페이스로 매핑 할 수 있도록 설계 개념을 이미 연구했다. 원하는 플랫폼에서 작동하도록 부스트 프레임 워크를 확장하는 것을 고려 했습니까?

관련 문제