2015-08-01 33 views
6

İşte benim Kurulum: Stat denilen Objective C koduSwift uygulaması: Statik kütüphaneye içe çerçeveyi aktarırken “Gerekli modülü eksik”

  1. Statik kütüphane. Stat'dan kendi sınıflarında kod kullanan bir hızlı çerçeve (bu çerçeve Dyn olarak adlandırılır). Statik kütüphane ve bu çerçeve aynı Xcode projesinde. Yukarıdaki projeye bir alt proje olarak sahip olan ve Dyn'a bağlanan bir Mac uygulaması/projesi. Ben derlemeye çalıştığımda bir hata ben import Dyn olsun Ancak

    import Cocoa 
    import Dyn 
    ... 
    SomeDynClass().doSomething() 
    

    : Benim uygulamasında

ben gibi bir kod vardır. Hata Benim app sadece iyi benim çerçevesini bulabilirsiniz görünür

error: missing required module ‘Stat' 

, ama nedense benim de statik kütüphane için bir modül bulmak için ihtiyacı var?

Stat oldukça basit bir modül dosyası vardır:

module Stat { 
    header "Stat.h" 
    export * 
} 

Ben Stat benim Mac uygulamasının çerçevesi arama yolları işaret etmek gerek ama neden bilmiyorum ve ben bilmiyorum. Bunu nasıl çözebilirim? Ben emin değilim, ancak,

${SRCROOT}/Stat 

Normalde modül kütüphanesine aynı adlı olacağını: Search Paths bölüm -

+0

ben onun daha bir yaşındaki biliyorum .. girmek veya sekme tuşuna kez kendisini çözmelidir ama bir çözüm buldun mu? OpenSSL ile şimdi benzer bir sorunum var. Kendi dosyalarımı libcrypto ve libssl ile oluşturdum ve bunlar için module.modulemap'i yarattım (modül adı: COpenSSL). Bunu hızlı çerçevemde kullanabilirim (ayrıca testler çalışıyor) ama bu çerçeveyi bir uygulamada kullandığımda şunu elde ederim: Eksik modül: COpenSSL – leizeQ

+0

@leizeQ Uygulamanızda da "COpenSSL" ye bağlantı kurmayı denediniz mi? Bunun işe yarayıp yaramayacağından emin değilim, ama bu bir atıştı! – jbrennan

+0

@jbrennan Benim durumumda hem Stat hem de Dyn hızlıdır. Ben şimdi XCODE 9.1 kullanarak yapıyorum varsayalım (bu hızlı statik lib destek). Soru, stat için modül haritasının nereye ekleneceği ve modulemap dosyasında neyin olması gerektiği? – harshit2811

cevap

4

senin Target ardından Swift Compiler içinde Import PathsBuild Settings gidip set seçin Eğer setup İthalat Yolu bu ismi yansıtacak bu durumda module.map (belki Dyn adlandırılabilir ile dizini ettik

Yapı Ayarlar> Swift Derleyici> Arama Yolları.:

enter image description here

$ {SRCROOT}/(module.map ile dizin),

+0

Ah çekim! Bu yüzden bunu denedim (önerinizden sonra) ve işe yaramadı. Ancak ne yapmam gerekiyorsa bunu benim APP hedefimde ekledim (Stat'i içe aktaran Dyn'e bağlanan uygulama).Geçen hafta diğer ayarları değiştirip değiştirmediğimi hatırlamak zor ama bunun benim yapmam gereken şey olduğuna inanıyorum. Teşekkür ederim. – jbrennan

+0

Drat, onu geri alıyorum. Yanlış projede bulundum. Bir sorun gibi görünen şey, Dyn çerçevem ​​ve Stat kitaplığımın iç içe geçmiş projelerdendir. Bu nedenle, App bunları alt projeler olarak kullanıyor ve bu, Uygulama hedefinde önerdiğiniz içe aktarma yollarıyla bile, bazı şeylerin oluşturulmamasına neden oluyor. – jbrennan

+0

@jbrennan: Çerçeve oluşturma ayarlarınızda, hızlı derleyici arama yollarının tanımlanmış olması ve çerçeveyi kendi başınıza oluşturursanız, her şey düzgün bir şekilde derlenir mi? –

İlgili konular