2011-11-29 1 views
1

나는 Windows와 OSX에서 쉽게 컴파일하고 싶은 C++ Eclipse 프로젝트를 가지고있다.하나의 Eclipse C++ 프로젝트가 플랫폼마다 다른 라이브러리를 다르게 연결할 수 있습니까?

프로젝트에서 현재 자동 생성 된 메이크 파일을 사용하고 있습니다.

필요한 라이브러리는 플랫폼에 따라 다릅니다.

osx에서 CoreMidi, CoreAudio 및 CoreFoundation 프레임 워크를 사용하고 있습니다. Windows에서 winmm.lib 및 다중 스레드 라이브러리를 사용하고 있습니다.

현재 플랫폼에 따라 다른 라이브러리/프레임 워크를 연결하는 가장 간단한 방법은 무엇입니까?

현재 OSX에서는 gcc toolchain을 사용하고 있습니다. 크로스 컴파일 툴체인을 사용해야합니까?

두 개의 프로젝트가 있어야합니까? 하나는 Windows에서 작업하고 다른 하나는 osx에서 버전 관리를 확인합니다.

플랫폼에 따라 다른 g ++ 인수가있는 자동 생성 옵션을 사용하는 대신 사용자 정의 makefile을 작성해야합니까?

답변

0

Eclipse가 OS X 및 Windows에서 잘 실행될 수 있지만이 방법으로 사용하도록 설계되지 않았습니다.

각 플랫폼마다 별도의 IDE 프로젝트를 사용하는 것이 가장 좋은 방법입니다. 이것은 여러 플랫폼에 대해 고유 한 컴파일 설정을 갖는 가장 쉬운 방법입니다.

네, 두 개의 이클립스 프로젝트를 사용할 수 있습니다. 또는 OSX 용 X-Code 프로젝트와 MS Windows 용 Visual Studio 프로젝트를 갖는 것도 드문 일이 아닙니다.

0

귀하의 설명에 따르면, 나는 당신이 쉽게 그것을 크로스 플랫폼으로 만들 수 있는지 확신하지 못합니다. 타사 라이브러리를 사용하지 않아도 osx 및 windows에 별도의 코드를 제공해야합니다. 대부분의 경우, 시스템을 먼저 크로스 플랫폼으로 설계합니다. 기존 프로젝트를 단일 플랫폼에서 크로스 플랫폼으로 만드는 것은 정말로 어렵습니다. 플랫폼 간 요구 사항이있는 경우 먼저 그런 식으로 디자인하고 처음부터 다시 작성하는 것이 좋습니다.

+0

이제는 프로젝트를 시작하기 시작한 것이므로 처음부터 다시 작성하기에는 너무 늦지 않았습니다. 플랫폼 별 코드를 플랫폼 별 라이브러리로 추상화하면됩니까? 어쩌면 나는 "다른 플랫폼에서 다른 라이브러리를 어떻게 링크합니까?"라는 질문을 다시해야 할 것입니다. –

1

저는 개인적으로 프로젝트의 목표가 같았으며 결론적으로 Qt framework이 가장 좋습니다. 그것은 여러 언어, 유니 코드 문자열, XML, 네트워크 통신, 네이티브 찾고 사용자 인터페이스, 콘솔 응용 프로그램을 처리 : 그것은 AWFUL 많이 할 수 있습니다.

그러나 Paul이 지적했듯이 처음부터 계획해야합니다.

Qt는 플랫폼을 추상화하여 QtCore라는 모듈에서 바닐라 C++ 코드를 작성하거나 Qt 도우미 응용 프로그램에서 moc (메타)라는 Qt C++ 언어 확장을 포함하도록 선택할 수 있습니다 객체 컴파일러)는 가장 일반적인 C++ 컴파일러에서 컴파일 할 수있는 vanilla C++를 만듭니다.

또한 qmake라는 멋진 크로스 플랫폼 메이크 파일 생성기가 있습니다.이 메이크 파일 생성기는 qmake라는 프로젝트 파일에서 작동하여 실행중인 플랫폼에 대한 일반 make 파일을 만듭니다.

적어도 내 머리 꼭대기에서 Windows XP & 7, OSX 10.4, 10.5, 10.6이 현재 지원됩니다. 그러나 OSX Lion은 (공식적으로는) 공식적으로 지원되지 않지만 다음 버전에 출시 될 것으로 예상됩니다.