Jest to tylko częściowa odpowiedź, bo ja też jeszcze nie zorientowali się, jak to zrobić z bibliotek OpenCV. (Wyobraź to sobie Zobacz aktualizację poniżej:) Ale zrobiłem to z innymi bibliotekami (SM2DGraphView).
Są trzy rzeczy, które muszą się wydarzyć:
trzeba skopiować biblioteki OpenCV, że program używa się wiązki aplikacji. Aby to zrobić (w Xcode 3, tak), dodaj fazę kompilacji Copy Files do celu. Przeciągnij pliki biblioteki z listy plików Xcode do fazy budowy. Kliknij dwukrotnie element Kopiowanie plików i ustaw miejsce docelowe na Frameworki.
Pamiętaj, że musisz upewnić się, że biblioteka dołączona do projektu Xcode jest plikiem biblioteki, a nie dowiązaniem symbolicznym do pliku biblioteki. W przeciwnym razie tylko plik symboliczny zostanie skopiowany do pakietu aplikacji.
Ścieżkę instalacji plików szkieletowych OpenCV należy ustawić na @executable_path/../Framework
. Jeśli framework został zbudowany w Xcode, zrobiłbyś to w ustawieniach projektu. Ponieważ OpenCV nie jest budowane w Xcode, musisz to zrobić po fakcie z programem wiersza poleceń install_name_tool
: install_name_tool -id @executable_path/../Frameworks libopencv_imgproc.2.3.1.dylib
. Powinieneś być w stanie ustawić to w fazie budowania Run Script w twoim celu.
Plik wykonywalny musi znaleźć bibliotekę w katalogu Frameworks
pakietu. Właśnie tam utknąłem.
Aktualizacja
znalazłem komendy prawidłowa install_name_tool dostać program widzieć bibliotek (i bibliotek, aby zobaczyć inne biblioteki). Informacje o the Qt page for deploying OS X programs były kluczowe.
Pobiegłem otool -L
na pliku wykonywalnego w katalogu Contents/MacOS mój program i zobaczył to stanowisko [non-odpowiednie linie usunięte]:
lib/libopencv_core.2.3.dylib (compatibility version 2.3.0, current version 2.3.1)
lib/libopencv_imgproc.2.3.dylib (compatibility version 2.3.0, current version 2.3.1)
lib/libopencv_highgui.2.3.dylib (compatibility version 2.3.0, current version 2.3.1)
więc użyłem tych poleceń (podczas gdy w treści katalogu/MacOS) dostać się do programu, aby spojrzeć w odpowiednim miejscu dla bibliotek:
install_name_tool -change lib/libopencv_core.2.3.dylib @executable_path/../Frameworks/libopencv_core.2.3.1.dylib CocoaCVTest
install_name_tool -change lib/libopencv_imgproc.2.3.dylib @executable_path/../Frameworks/libopencv_imgproc.2.3.1.dylib CocoaCVTest
install_name_tool -change lib/libopencv_highgui.2.3.dylib @executable_path/../Frameworks/libopencv_highgui.2.3.1.dylib CocoaCVTest
Potem zmieniła się zawartość katalogu/ram i stosować te polecenia, aby powiedzieć biblioteki, gdzie zostały one zainstalowane:
install_name_tool -id @executable_path/../Frameworks/libopencv_core.2.3.1.dylib libopencv_core.2.3.1.dylib
install_name_tool -id @executable_path/../Frameworks/libopencv_imgproc.2.3.1.dylib libopencv_imgproc.2.3.1.dylib
install_name_tool -id @executable_path/../Frameworks/libopencv_highgui.2.3.1.dylib libopencv_highgui.2.3.1.dylib
Teraz biblioteka imgproc musi być poinformowani, gdzie znaleźć biblioteki rdzenia i highgui musi być poinformowani, gdzie znaleźć rdzeń i imgproc:
install_name_tool -change lib/libopencv_core.2.3.dylib @executable_path/../Frameworks/libopencv_core.2.3.1.dylib libopencv_imgproc.2.3.1.dylib
install_name_tool -change lib/libopencv_core.2.3.dylib @executable_path/../Frameworks/libopencv_core.2.3.1.dylib libopencv_highgui.2.3.1.dylib
install_name_tool -change lib/libopencv_imgproc.2.3.dylib @executable_path/../Frameworks/libopencv_imgproc.2.3.1.dylib libopencv_highgui.2.3.1.dylib
jestem nadal działa do problemu gdzie highgui szuka wielu bibliotek w/opt/local/bin, ale jestem dość pewny, że część problemu OpenCV została rozwiązana. Teraz potrzebuję tylko tych wszystkich poleceń do fazy budowy w Xcode.
jeśli to rozwiązanie Ci nie pomoże, możesz wyjaśnić nam lepiej, czego się spodziewasz? wielkie dzięki, Julien – jmartel