Deploying QT and OpenCV application on Mac OS X
Many developers asking how to deploy QT and OpenCV application for MacOS. This is not hard task.
Deploying of QT framework is a simple task. Recent QT4 framework has simple utility "macdeployqt" to deploy QT with your application. Just run it from terminal using this command:
/usr/local/Trolltech/Qt-4.7.3/bin/macdeployqt "MyProgram.app"
Qt-4.7.3 - Your Qt Framework version, MyProgram.app - Your application.
macdeployqt will automatically copy used OpenCV libraries into Framework folder. All you need to do is to update libraries IDs and references. This can be done using install_name_tool standard Mac utility.
In this example, "MyProgram.app" uses these 3 OpenCV 2.3.1 libs - core, highgui and imgproc.
Firstly updating IDs:
install_name_tool -id @executable_path/../Frameworks/libopencv_core.2.3.dylib "MyProgram.app/Contents/Frameworks/libopencv_core.2.3.dylib"
install_name_tool -id @executable_path/../Frameworks/libopencv_highgui.2.3.dylib "MyProgram.app/Contents/Frameworks/libopencv_highgui.2.3.dylib"
install_name_tool -id @executable_path/../Frameworks/libopencv_imgproc.2.3.dylib "MyProgram.app/Contents/Frameworks/libopencv_imgproc.2.3.dylib"
Changing libraries references:
install_name_tool -change lib/libopencv_core.2.3.dylib @executable_path/../Frameworks/libopencv_core.2.3.dylib "MyProgram. app/Contents/MacOS/MyProgram"
install_name_tool -change lib/libopencv_highgui.2.3.dylib @executable_path/../Frameworks/libopencv_highgui.2.3.dylib "MyProgram.app/Contents/MacOS/MyProgram"
install_name_tool -change lib/libopencv_imgproc.2.3.dylib @executable_path/../Frameworks/libopencv_imgproc.2.3.dylib "MyProgram.app/Contents/MacOS/MyProgram"
install_name_tool -change lib/libpng15.15.dylib @executable_path/../Frameworks/libpng15.15.dylib "MyProgram.app/Contents/MacOS/ MyProgram"
Changing internal libraries cross-references:
install_name_tool -change lib/libopencv_core.2.3.dylib @executable_path/../Frameworks/libopencv_core.2.3.dylib "MyProgram.app/Contents/Frameworks/libopencv_highgui.2.3.dylib"
install_name_tool -change lib/libopencv_imgproc.2.3.dylib @executable_path/../Frameworks/libopencv_imgproc.2.3.dylib "MyProgram.app/Contents/Frameworks/libopencv_highgui.2.3.dylib"
install_name_tool -change lib/libopencv_core.2.3.dylib @executable_path/../Frameworks/libopencv_core.2.3.dylib "MyProgram.app/Contents/Frameworks/libopencv_imgproc.2.3.dylib"
Done!
Now you can create simple DMG installer and use your application on any Mac OS without installing OpenCV libraries.
|