2015-08-18 8 views
5

में तृतीय-पक्ष पुस्तकालयों को कैसे संलग्न करें मेरे पास विंडोज़ के लिए .NET 4 पर एक प्रोग्राम है। मैं मोनो और ज़ैमरिन स्टूडियो के साथ मैक कंप्यूटर के लिए इसे पोर्ट करने की कोशिश कर रहा हूं। मेरे पास तीसरे भाग की लाइब्रेरी है EmguCV (यह OpenCV लाइब्रेरी के लिए एक रैपर है)। मैं इसे स्थापित करने के लिए official manual का उपयोग कर रहा हूं। यह दोनों OpenCV और EmguCV स्थापित करतारिलीज संस्करण

लाइब्रेरी/अजगर को/2.7/साइट-संकुल/EmguCV/lib

जब मैं Xamarin से डीबग मोड में कार्यक्रम शुरू - सब ठीक काम करता है। यह सभी पुस्तकालयों को पाता है और इसका उपयोग करता है। लेकिन जब मैं प्रोग्राम को "पीक" के रूप में बना देता हूं और EmguCV इंस्टॉल किए बिना कंप्यूटर पर चलाता हूं - मुझे "डीएलएल नहीं मिला" अपवाद मिला।

मैं इस आदेश के साथ अपने कार्यक्रम बनाने:

  • -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 
    

    मेरे दूसरे और तीसरे पैरामीटर मेरी पाक को EmguCV पुस्तकालयों संलग्न करना चाहिए संकुल/EmguCV/lib

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

और जब मैं पाक के अंदर देख रहा हूं - मुझे यह पुस्तकालय मिलते हैं। हालांकि कार्यक्रम अभी भी यह नहीं मिला ..

मैं openCV देशी पुस्तकालयों में मुसीबत लगता है, लेकिन मुझे नहीं पता कर सकते हैं कि क्या गलत :(है

+0

सी # के बारे में निश्चित नहीं है ... आम तौर पर आप केवल डीएलएल बाइनरी को काम करने वाली निर्देशिका में या कहीं और जोड़ते हैं, जहां सिस्टम/प्रोग्राम उन्हें – Micka

+0

हाँ ढूंढ सकता है। खिड़कियों के लिए यह सच है। लेकिन मैक के लिए यह काम नहीं कर रहा है। मैंने अपने डीबग फ़ोल्डर में सभी openCV dylib डाला - और फिर से त्रुटि मिली। –

उत्तर

3

ठीक है, मैं मैक मंचों :)

पर बहुत समय बिताया

बिंदु यह है कि ओएसएक्स गतिशील पुस्तकालय (* .dylib) में "इंस्टॉल नाम" है जो ते एलएलएस ओएस जहां पुस्तकालय की उम्मीद है। तो, इसके साथ काम करने के लिए - मुझे "नाम स्थापित करें" बदलना चाहिए।

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

जहां @loader_path एक विशेष मैक चर, जो आवेदन पथ के सापेक्ष उपयोग करने के लिए अनुमति देता है: - यह ऐसा करने के लिए मैं एक उपकरण dylibbundler कि install_name_tool इस तरह के साथ इस नाम बदल दिया करते थे।

1

ये बातें मैं पहले की जाँच चाहते हैं। 1. है अपने पाक पूरा हो गया। ऐसा लगता है कि आप पहले से ही है कि जाँच हो सकता है। 2. अपने परीक्षण प्रणाली opencv binaries स्थापित किया है करता है और रास्ते में।

+0

क्या प्रत्येक उपयोगकर्ता opencv binaries स्थापित करना चाहिए? अजीब लगता है .. –

+0

प्रत्येक उपयोगकर्ता को ओपनसीवी बाइनरी का एक अलग इंस्टॉल नहीं होना चाहिए, लेकिन प्रत्येक उपयोगकर्ता को ओपनसीवी बाइनरीज़ तक पहुंचने की आवश्यकता होती है। पथ चर परिवर्तक को यह सुनिश्चित करके हासिल किया जा सकता है कि आपकी ओपनसीवी बाइनरी कहाँ स्थित है। वैकल्पिक रूप से, आप अपनी ओपनसीवी बाइनरी को एक निर्देशिका स्थान पर सिम-लिंक कर सकते हैं जो पहले से ही प्रत्येक उपयोगकर्ता पथ में है। – Darren

संबंधित मुद्दे