HEADER
 
 

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.