2015-01-29 2 views
-1

C++ 응용 프로그램 개발을 위해 Eclipse Luna를 사용하고 있습니다. 이 응용 프로그램은 Linux 및 Windows에서 실행해야합니다. 프로그램이 getifaddrs 등과 같은 네트워크 기능을 포함 할 것이기 때문에 나는 윈도우즈와 리눅스에 다른 것들을 사용해야한다. (나는 이미이 코드를주의 깊게 다룰 것이다). 질문이 더 많습니다. 어떻게 Windows 환경에서 프로그램을 컴파일합니까? 이클립스에서 리눅스 컴파일과 윈도우 컴파일 사이를 전환 할 수있는 환경 설정을 할 수 있습니까? 아니면 둘 다 사용할 수있는 일반적인 크로스 컴파일러가 있습니까?Windows에서도 작동하는 Linux에서 C++ 응용 프로그램 개발

응용 프로그램을 Windows 환경에서 실행하는 것이 가능합니까? 아마도 시험을 위해 wine일까요?

+0

매크로를 사용하여 현재 사용중인 OS를 확인하고 적절하게 프로그램을 조정할 수 있습니다. – Hayden

+0

그래, 그게 코딩 부분에 대한 계획이지만, 다른 #includes와 같은 을 사용해야 할 것입니다, 그것을 컴파일하는 것이 가능하고 어쩌면 아마 리눅스에서도 테스트 할 수 있습니까? – wasp256

+0

부스트 라이브러리를 사용하십시오. http://www.boost.org/doc/libs/1_57_0/doc/html/boost_asio.html 또한 OS가 아니라 컴파일러입니다. "Windows 및 Linux와 작동"이라고 말하면 Windows 용 컴파일러와 Linux 용 컴파일러가 있습니다. – PaulMcKenzie

답변

1

당신이 좋아하는 전처리 매크로와 OS에 민감한 코드를 래핑 할 수 있습니다 http://sourceforge.net/p/predef/wiki/OperatingSystems/

이 방법은 현재를 대상으로하지 않는 코드 :

#ifdef __PREDEFINED_MACRO_FOR_OS1 
// code specific for OS1 
#elif __PREDEFINED_MACRO_FOR_OS2 
// code specific for OS2 
... 
#elif _PREDEFINED_MACRO_FOR_OSN 
// code specific for OSN 
#else 
#error "Operating System not supported." 
#endif 

당신이있어 각 OS에 대한 특정 매크로를 찾을 수 있습니다 운영 체제는 무시되고 올바른 운영 체제 만 컴파일됩니다.

+0

컴파일을 위해서는 Windows dll을 컴파일하고 Linux에서 exe를 수행 할 수있는 MinGW를 확인해야합니다. 이런 식으로 단일 개발 및 컴파일 환경을가집니다. –