2013-03-08 6 views
0

Windows에서 Win32 GUI 응용 프로그램이나 Linux에서 콘솔 응용 프로그램을 조건부로 컴파일하는 응용 프로그램을 작성해야했습니다.조건부로 Win32 GUI 또는 Linux 콘솔 앱으로 컴파일

내 가장 큰 걸림돌은 지금까지이 프로젝트를 설정하는 방법을 알아내는 것입니다. Visual Studio 2012에서 일반적으로 작업하고 새로운 C++ Win32 프로젝트를 만들 때 콘솔 응용 프로그램과 GUI 응용 프로그램 중 하나를 선택할 수 있습니다. 필자는 이것이 컴파일러와 관련된 프로젝트 속성과 물건을 설정하는 것 같아서 리눅스에서 같은 프로젝트를 컴파일하고 콘솔 애플리케이션을 생성하는 것을 어렵게 만들 것입니다.

조건부 컴파일 물건들 나는 몹시 염려하지 않는다. 나는 Visual Studio를 사용하지 않고 Windows에서 명령 줄을 통해이 물건들을 컴파일해야 하는지를 알아 내려고하고있다. 이렇게하면 대상 응용 프로그램이 GUI 또는 콘솔 응용 프로그램으로 끝납니다.

나는 분명히 나 자신을 명확하게 설명했다. 분명히 나는 ​​꽤 길다라고 생각한다. 모든 도움을 미리 감사드립니다.

답변

3

이 기능은 대부분의 기능을 포함하는 라이브러리를 만든 다음이 라이브러리의 프론트 엔드 2 ~ 3 개를 사용하여 콘솔 앱이나 GUI 프로그램의 기능을 폭넓게 제공하는 것이 좋습니다.

콘솔 앱 프로젝트가 아닌 Win32 GUI 항목을 bash로 가져 오는 것은 의미가 없습니다.

0

wxWidgets 또는 Qt와 같은 플랫폼 간 툴킷을 사용하는 것이 좋습니다. 그렇게하면 특정 플랫폼 아키텍처에 묶여 있지 않습니다. 이러한 프레임 워크에는 다양한 컴파일러/개발 환경에서 프로젝트를 올바르게 설정하는 방법에 대한 광범위한 문서가 있습니다.

0

이것은 최소한 윈도우 쪽에서는 프로젝트의 전 처리기 정의를 사용하여 둘 다 정의 할 수 있습니다. 여기에서 토론했습니다!

C++ compiling on Windows and Linux: ifdef switch

및 스타일 화 코드 섹션으로 :

#ifdef WIN32 // Windows system specific 
#include <windows.h> 
#else   // Unix based system specific 
#include <sys/time.h> 
#endif 

이 방법 당신의 크로스 플랫폼 코드를 모두 분리를 계속합니다. 속성 -> 구성 속성 -> C/C++ -> 전 처리기에서 프로젝트 속성에 WIN32를 추가하는 것을 잊지 마십시오.