2010-03-10 14 views
6

OS X'in Python.framework öğesine bağlanan bir uygulama var. Snow Leopard, Python 2.6'ya geçtiğinden beri, çerçeve artık 2.4, 2.5 ve 2.6 sürümlerini içeriyor. Programım, 2.6'ya karşı bağlantı kurmak istemiyor gibi görünmüyor ve bu, yeni Python çalışma zamanındaki özellikleri kullanmaya çalıştığımda hatalara neden oluyor.Xcode'ta belirli bir çerçeve sürümüne nasıl bağlanır?

Yükleme sonrasında bir adımda bağlantıyı değiştirmek için install_name_tool'u kullanabileceğimi biliyorum, ancak derleme sırasında nereye bağlanacağını söylemenin herhangi bir yolu var mı? Oldukça yaygın bir kullanım çantası gibi görünüyor.

cevap

2

Bunu denemedim, ama işe yarayacağına inanıyorum. /System/Library/Frameworks/Python.framework/2.5/" so -

1)

2) Bunun yerine, "OTHER_LINKER_FLAGS" kütüphaneye tam yolunu kullanmak Xcode projesine çerçeve ekleme ETMEYİN Python "

3) Ayrıca," /System/Library/Frameworks/Python.framework/2.5/ "için çerçeve arama yolunu ayarlamak ve"/System/Library/Frameworks/Python.framework/2.5/Üstbilgiler "

Ancak, bununla birlikte, Apple'ın yapabileceği değişikliklere karşı sizi savunmasız bırakacaktır. Örneğin, her şey daha sonra 2.5'i çerçeveden çıkarırsa kırılır. Uygulamanızın şimdiki Python sürümü ile çalışmak için güncellenmesi çok daha iyi bir fikir olurdu.

+0

Doğru, Python'un daha yeni sürümüne bağlantı * istiyorum. Sorun şu ki, programım sadece set ve lib yollarının ayarlanmış olmasına rağmen 2.5 sürümüne karşı bağlantı kurmak istiyor gibi görünüyor. Gerçeği düzeltebilirim ama bu bir kefere benziyor. – SJML

+0

Bu öneri, eski bir çerçeveye bağlanırken çalıştı (örneğin, 10.7'deki Python.framework öğesine bağlanırsanız, uygulama 10.6'da yüklenmez (aksi halde bu, algılamanın nasıl olduğunu bilen bir ikili oluşturmak için geçerli bir yöntem olsa da) ve Zayıf bağlantı ile 10.7 ve 10.6 arasındaki fonksiyonları kullanıyorum. Ancak Xcode 4'te kütüphaneyi bağlantı aşamasında el ile belirledim ve iyi çalıştı (OTHER_LINKER_FLAGS ile yapmanın aksine) – gaige

1

Bu özel sorunla da karşılaştım ve Python Framework 2.6'yı derlemede kullanmanın bir yolunu bulamadım.

OTHER_LINKER_FLAGS yaklaşımını işe alamadım, alas.

# 
# Force the required version of Python to be 2.6 
# dvb10.12.01 

install_name_tool \ 
    -change \ 
     /System/Library/Frameworks/Python.framework/Versions/2.5/Python \ 
     /System/Library/Frameworks/Python.framework/Versions/2.6/Python \ 
    $TARGET_BUILD_DIR/omino_python.plugin/Contents/MacOS/omino_python 

Sadece Grepping için oraya koyarak: SJML önerdi gibi

yani, ben şöyle bir post derleme adımı kullanılır.

İlgili konular