2011-01-27 21 views
14

OpenGL kullanarak C++ ile yazılan protein görselleştirmesi için bir matematik/bilimsel uygulamaya sahibiz. Son birkaç yılda yazılmıştır ve GCC 4.4 ve sonrasında bulunan C++ 0x özelliklerinin kapsamlı bir şekilde kullanılmasını sağlar. (Ayrıca, birçok C++ 0x özelliğini destekleyen Windows'ta Microsoft Visual C++ 10 ile derler.)iPhone ve iPhone simulator için C++ 0x kodu nasıl derlenir?

iPhone/iPad sürümü yayınlamak istiyoruz, bu yüzden Linux/Windows'dan iPhone'a aktarmamız gerekiyor. Biz çok az çaba ile benzer programlar taşıdık - bir avuç Objective C dosyası eklemek ve bitti! - Ancak, burada kullanılan C++ 0x özellikleri nedeniyle bir sorun var. OS X'teki Xcode, GCC'nin C++ 0x desteğini alan GCC 4.2.1'i (2007'den) kullanır. C++ 0x özelliklerini kullanmamak için tüm bu güzel C++ 0x kodunu yeniden yazmak için geriye doğru büyük bir adım gibi görünüyor ve C++ 0x'e doğru olan yürüyüş net olduğunda geriye dönük bir kod tabanı sağlamak istemiyoruz.

iPhone ve iPhone simülatörünü hedeflemek için GCC 4.5 (veya SVN'den 4.6) kullanmanın bir yolu var mı? Öyleyse nasıl? Tıklama ve çalıştırma/tıklama ve hata ayıklama işlevselliği çok kullanışlı olduğundan, tercihen Xcode içinden. Xcode'ta "C/C++ Derleyici Sürüm" kutusuna "GCC 4.6" girebilmek ve her şeyin işe yaraması harika olurdu.

(Clan'ın en üst sürümü ağacın bir sürümü olarak - sadece dün itibariyle! - bazı C++ 0x özelliklerini destekliyor, ancak henüz lambda ifadelerini desteklemiyor. şimdi bizim için.)

+0

+1 bir telefonda ninja-müthiş protein görselleştirme için :) –

+1

Ayrıca iphone üzerinde C++ 0x kullanma yolları da ilgilenir miydi – Colen

+1

PLBlock'ların bunu nasıl yaptığını kontrol edebilirsiniz. IOS 2.2+ ve Mac OS 10.5 için bloklar sağlayan bir drop-in araç zinciri ve çalışma zamanı yedeği var: http://code.google.com/p/plblocks/ –

cevap

5

Başımın üst kısmından, Apple'ın resmi olarak destekleyene kadar, muhtemelen bunu yapmanın çok temiz ya da kolay bir yolu olmadığını söyleyeceğim. Muhtemelen bunu zaten biliyorsunuzdur, fakat Xcode'un GCC'nin eski bir sürümünü kullanması, Apple'ın GNU takım zincirinde kapsamlı değişiklikler yapması ve versiyonlarını APSL (GPL ile incompatible) altında yayınlamasıdır. Çoğunlukla, GCC'nin versiyonunu tam bir çatal olarak düşünebilirsiniz. Alet zincirinin Apple versiyonunu Linux'a aktarmaya çalışırken bu problemle karşılaştım. Sınırlı bir başarı elde ettim, ama küçük bir girişim değil ...