2012-09-19 12 views
8

Uygulamamın SDL ve SDL_ttf çerçevelerini eklemeye çalışıyorum ve her zamanki gibi yaptım: bunları "Kütüphanelerle İkili Bağlantılar" bölümüne ekledim ve bir kopyalama dosyaları aşaması ekledim onları Frameworks dizinine kopyalar. Bu, yerleşik çerçevelere sahip bir uygulama paketi oluşturur.Mac App Bundle çerçevelerini katıştırma

dyld: Library not loaded: @rpath/SDL_ttf.framework/Versions/A/SDL_ttf Referenced from: /Users/matthew.davies/Library/Developer/Xcode/DerivedData/MacHub-ambfqujqxbxyiqapaoctvsucpdeu/Build/Products/Release/MacHub.app/Contents/MacOS/MacHub Reason: image not found

Ben Uygulamanın paket içinde gömülü olmasına rağmen çerçeveler bulabilmesi için başka ne emin değilim: Uygulamayı çalıştırdığınızda, ancak, bu hatayı alabilirsiniz.

Herhangi bir fikir lütfen?

cevap

5

Bir web sayfasındaki yorumda nedenini keşfettim. "Runpath Search Paths" oluşturma ayarını "@loader_path /../ Frameworks" olarak ayarladım ve çerçeveler bulundu.

Uygulama paketinin Frameworks dizininde çerçeveler otomatik olarak aranmıyor neden bana tam bir gizem mi? Apple'ı mı dinliyorsun?

+1

Apple'ın önerdiği şekilde bir şeyler inşa ederseniz, ilk başta '@loader_path /../ Frameworks/SDL.framework'ı arayacaksınız, böylece arama yoluna ihtiyacınız olmayacak. Bu daha güvenli bir çözümdür, çünkü uygulamanızın çerçevenin yanlış sürümüne bağlı kalmamasını garanti eder. Eğer bir şeyleri tavsiye ettikleri gibi yapmazsanız, o zaman her türlü düşük seviyeli bilgiyi öğrenmelisiniz. (Muhtemelen burada gerçekten ne istiyorsun 'install_name_tool', ama önceden bilmeden kendiniz için bunu bulma olasılıkları ince…) – abarnert

+1

Buradaki asıl sorun, Apple'ın çok basit“ başlangıç ​​”kullanımı için iyi belgelere sahip olmasıdır. çerçeveler ve her şeyin nasıl çalıştığına dair düşük seviyeli ayrıntılar için, ancak bunlar arasında çok fazla… – abarnert

+0

Projemde, yürütülebilir/framework/Framework'leri ve framework'ün uygulama İçeriği/Çerçeveler kopyalarını topladı ve kütüphane seçiminin tanımlanmayacağı konusunda uyardı (aslında, SDL_Mixer bu yapılandırmada çalışmadı). Bu ipucu da bu sorunu giderir. – Justin