2015-08-18 16 views
5

'da üçüncü taraf kitaplıkları nasıl eklenir Windows için .NET 4'te bir programım var. Mono ve Xamarin stüdyosu ile Mac bilgisayarları için port etmeye çalışıyorum. Üçüncü bölüm kitaplığı EmguCV (OpenCV kitaplığı için bir sarmalayıcı) var. Yüklemek için official manual kullanıyorum. BuYayın sürümü

Kütüphane/Python hem OpenCV ve EmguCV yükler/2.7/site paketleri/emgucv/lib

Ben Xamarin gelen hata ayıklama modunda Programı başlatmak - tüm iyi çalışır. Tüm kütüphaneleri bulur ve kullanır. Ama "pak" olarak program kurduğumda ve EmguCV yüklenmeden bilgisayarda çalıştırdığımda - "DLL bulunamadı" istisnası var.

Ben bu komutla benim program yapmak:

  • -r: /Library/Python/2.7/site-

    macpack -m:1 -o:. -r:/Library/Frameworks/Mono.framework/Versions/Current/lib/ -r:/Library/Python/2.7/site-packages/emgucv/lib -r:/Library/Python/2.7/site-packages/emgucv/bin -r:Assimp32.dll -r:Assimp64.dll -r:cvextern.dll -r:Emgu.CV.dll -r:Emgu.Util.dll -r:libegl.dll -r:libglesv2.dll -r:OpenTK.dll -r:OpenTK.GLControl.dll -r:RH.AssimpNet.dll -r:RH.HeadEditor.dll -r:RH.ImageListView.dll -r:RH.HeadShop.exe -r:blending.fs -r:blending.vs -r:blendingPl.vs -r:idle.fs -r:idle.vs -r:skelet.vs -r:sprite.png -r:./Libraries -r:./Models -r:./Plugin -r:./Resources -r:./Stages -r:./"Haar Cascades" -n:HeadShop -a:RH.HeadShop.exe 
    

    Benim ikinci ve üçüncü parametreler benim pak etmek EmguCV kütüphaneleri bağlı olmalıdır paketler/emgucv/lib

  • -r: /Library/Python/2.7/site-packages/emgucv/bin

Ve pak içinde baktığımda - bu kütüphaneleri buluyorum. Ancak programın hala

Ben openCV yerli kütüphanelerde sorun tahmin .. bulamadım, ama yanlış :(ne olduğunun farkında olamaz

+0

C# ... ile ilgili emin değilim, sadece DLL'yi çalışma dizinine veya sistem/programın – Micka

+0

Yep bulabildiği başka bir yere ekleyin. Pencereler için bu doğru. Ama MAC için çalışmıyor. Tüm openCV dylib hata ayıklama klasörüne koydum - ve yine hatayı aldım. –

cevap

3

Eh, mac forumlar :)

üzerinde çok fazla zaman geçirdi

Buradaki nokta, OSX dinamik kitaplıklarının (* .dylib) "yükleme adı" na sahip olmasıdır. Kütüphanenin bulunmasını beklediği işletim sistemi. Yani, onunla çalışmak için - "yükleme adı" değiştirmeliyim. @loader_path uygulama yoluna göre kullanmayı sağlayan özel Mac değişken olduğu

install_name_tool -id "@loader_path/dylibs/libcvextern.dylib" libcvextern.dylib 

: - Bunu yapmak için böyle install_name_tool ile bu adı değişti bir araç dylibbundler kullandı.

1

Bunlar ilk kontrol edeceğimi şeylerdir. 1. mi zaten kontrol edildikten olabilir gibi pak tamamlandı. Sesler. 2. test sistemi opencv ikili yüklü var mı ve yoldaki.

+0

Her kullanıcı opencv ikili dosyalarını mı yüklemeli? Kulağa garip geliyor .. –

+0

Her kullanıcı, opencv binary'lerinin ayrı bir kurulumuna sahip olmak zorunda değildir, ancak her kullanıcının opencv ikili dosyalarının olduğu yere erişimi olmalıdır. Bu, yol değişkeninin opencv ikili dosyalarınızın bulunduğu dizini içerdiğini sağlayarak elde edilebilir. Alternatif olarak, opencv ikili dosyalarınızı zaten her kullanıcı yolunda bulunan bir dizin konumuna bağlayabilirsiniz. – Darren