2009-05-14 7 views
8

저는 개발자 팀에서 일하고 있습니다. 우리 중 한 명은 Windows에서 특별히 작업하고 Mac OS X에서 주로 작업합니다. 우리는 C 기반 응용 프로그램을 C++ 또는 Objective-C 그러나 크로스 플랫폼 개발 프로젝트를 수행하는 방법에 대해서는 잘 알지 못합니다.크로스 플랫폼 Objective-C/C++ 개발

Mac OS X을 사용하여 C++에서 작동 할 수 있습니까? 분명히 Objective-C를 목표로하고 있지만 C++에 대한 지원도 많이 있습니다. 이 언어들에서 크로스 플랫폼 개발은 어떨까요? 나는 부스트와 UI 라이브러리 같은 것을 사용할 것이다.

여러 플랫폼에서 개발 한 경험이있는 사람이 있습니까? 아직 VM이 없어도 응용 프로그램을 기본적으로 실행할 수 있습니까?

수정 : 지금 올바른 것으로 표시하고 싶은 답변이 많이 있습니다. Qt는 C++로 개발하고 개발하는 방법 인 것 같습니다. 기회는 이것이 * nix, OS X 및 Windows 용이므로 개인적으로 우리에게 가장 좋은 옵션이 될 것입니다. Objective-C를 쓰지 않아도된다면 팀이 C++을 고수 할 것입니다. Objective-C에서 GUI를 작성하고 섞어서 일치시켜야한다면 너무 괴롭지 않습니다.

답변

10

You could look at Qt. Windows, Linux 및 Mac OSX 프로젝트에서이 파일을 성공적으로 사용했습니다.

+0

이것은 아마도 가장 간단한 게시물이지만 아직 가장 이해하기 쉽습니다. – Kezzer

1

Mac OS X을 사용하는 C++에서 작동 할 수 있습니까? 분명히 Objective-C를 목표로하고 있지만 C++에 대한 지원도 많이 있습니다.

예, 있습니다.

OS X에서 C++을 사용하여 원하는 모든 것을 할 수 있습니다. 예를 들어 Linux에서 C++로 할 수있는 모든 작업을 수행 할 수 있습니다. gcc의 C++ 컴파일러, C++ 라이브러리 등이 지원됩니다. Xcode는 C++에 대한 작업을 지원합니다.

Objective-C++로 objective-C와 C++을 섞어서 사용할 수도 있습니다 (단, GUI 작업에는 이식 할 수 없음).

이러한 언어의 플랫폼 간 개발은 어떻게됩니까? 나는 부스트와 UI 라이브러리 같은 것을 사용할 것이다.

최상의 내기는 QT입니다.

크로스 플랫폼 (Windows, OSX, Linux 등) 인 안정적인 C++ 라이브러리이며 10 년 넘게 사용되어 많은 상업용 응용 프로그램 (Skype, Adobe Photoshop Album) 그리고 그것으로 작성된 수많은 오픈 소스 자료 (KDE 바탕 화면). 그것은 GUI를 물건 외에도 훨씬 더 (컨테이너 클래스, XML, 데이터베이스 연결 등)을 제공합니다.

최신 QT로 오픈 소스 및 독점 (폐쇄 소스) 응용 프로그램을 무료로 개발할 수 있으며, 도서관은 최근 막대한 다국적 기업인 NOKIA에서 구입하여 곧 사라지지 않을 것입니다.

QT에는 라이브러리 외에도 IDE와 Visual Forms Designer (모두 무료)가 제공됩니다.

OS X (wxWidgets, gtkmm 등)에 대한 다른 크로스 플랫폼 GUI 라이브러리도 존재합니다.

+0

Mac OS X의 wxWidget은 버튼과 필드가있는 간단한 GUI를 관리하지만 완전한 기능을 갖춘 응용 프로그램은 wxWidgets로 Maccish가 아닌 느낌을줍니다. 글꼴 대화 상자의 예입니다. 모양과 느낌이 절대적으로 동일 할 수 있도록 – dreamlax

11

나는 C++, MFC 및 Objective-C를 사용하여 Mac OS X 및 Windows 용 소프트웨어를 생산하는 소프트웨어 회사에서 일하고 있습니다.

네, 가능합니다.

아마도 C++에서 응용 프로그램의 "핵심"을 개발할 때 가장 잘 제공 될 것입니다. MVC 응용 프로그램에서 C++ 부분은 모델이 될 수 있으며 컨트롤러가 될 수도 있습니다. GUI 및 기타 OS 관련 인터페이스와 인터페이스하는 코드의 경우 Mac OS X에서는 Objective-C를, Windows XP에서는 C#이라는 네이티브 API를 사용해야합니다.

Mac의 장점은 C++과 Objective-C를 함께 컴파일 할 수 있다는 것입니다. C++과 Objective-C가 동일한 컴파일 단위로 컴파일되는 Objective-C++도 있습니다. 불행히도 C#에서는 이것을 할 수 없습니다 (Managed C++라고하는 다른 짐승이 있습니다).

Qt 및 wxWidgets와 같은 플랫폼 간 프레임 워크를 피할 것입니다. 둘 다 교차 플랫폼 응용 프로그램을 개발할 수 있지만 이러한 응용 프로그램의 모양과 느낌은 하위 수준입니다. 그래도 wxWidgets에 익숙하지만, 디자인은 Windows MFC 패러다임의 애플리케이션 디자인에 중점을 둡니다.

는 편집 할 수 있습니다 (14), 2009 년 동부 표준시 오전 9시 44분 : Qt는 지금 사실 모양과 네이티브 플랫폼의 느낌을 허용하는 경우, 그것은 좋은 옵션이 될 수 있습니다. 필자는 최신 제품을 살펴 보지 않았기 때문에 자체 프레임 워크를 설계하기 전에 해당 프레임 워크를보고 싶을 수 있습니다. 이 결정은 애플리케이션의 결과를 검토하고 Qt가 필요로하는 설계 패러다임을 얼마나 편안하게 사용 하는지를 검토 한 후에 결정해야합니다.

+2

사실, Qt는 지금, 코코아와 통합 할 수 있습니다. – Hejazzman

+0

우리는 같은 페이지 ;-) –

+0

큰 마음이 비슷하게 생각에 기본적으로있어? Lo mismo? 응용 프로그램의 나머지 부분은 C++에있는 경우 : –

4

나는 C 또는 C++로 작성된 공통 라이브러리를 응용 프로그램의 모든 핵심 기능과 함께 사용합니다.

솔리테어 게임을 만들고 있다고 가정 해 봅니다. 따라서 순수 C++ (주로 플랫폼 독립적 인) 라이브러리에서 핵심 클래스를 갖게됩니다. 그런 다음 CoreSolitaire

  • , 당신은 당신이 당신의 일인 배포 할 각 플랫폼에 대해 하나의 별도의 UI 프로젝트를해야합니다 :

    • iSolitaire (목표 - C를, 멀티 터치 코코아를위한 기반 iPhoneOS)
    • MacSolitaire (Objective-C, Mac OS X 용 코코아 기반)
    • WinSolitaire (C++, Win32 또는 C# 기반 Windows 용) ORMS)
    • GSolitaire (C++, 그놈/GTK

    ) 리눅스/유닉스 기반의 그것은 더 많은 작업을하지만, 내 의견으로는, 최종 제품은 확실히 당신이 독립적 인 플랫폼을 사용하여 얻을 수있는보다 나은 하나입니다 위젯은 QT 또는 wxWidgets과 같습니다.

    그렇다면 전개 환경을 완전히 제어 할 수있는 회사에서 제품을 내부적으로 전개 할 경우 결과 제품이 다른 플랫폼에서 작동하는 방식에 대해서는별로 신경 쓰지 않아도됩니다. 모든 API (QT, wxWidgets 또는 기타 발생할 수있는 API)를 확실히 사용할 수 있습니다.

+1

사실, QT는 Windows 및 Linux (KDE 나 GNOME 테마 지원)에서 절대적으로 고유 보인다. 또한 Cocoa-QT 통합으로 QT를 사용할 수 있으며 Mac 용 Cocoa GUI도 사용할 수 있습니다. 3 가지 UI 툴킷을 사용하여 뛰 웁니다. – Hejazzman

0

사람은 아직 응용 프로그램이 VM에 대한 필요없이 기본적으로 을 실행할 수 있도록 다양한 플랫폼을 위해 개발 에서 어떤 경험을 가지고있다?약간

. 모든 플랫폼 특정 코드를 감싸는 지 확인하십시오. 당신이 주요 응용 프로그램이나 라이브러리있어 그 방법은 플랫폼 특정 코드를 참조 할 필요가 없습니다. 따라서 다른 플랫폼으로 이식 할 때 더 쉽게 사용할 수 있습니다.