2 votes

Comment lier un fichier mex MATLAB 64 bits aux bibliothèques OpenCV

Normalement, dans MATLAB, je peux compiler un fichier mex qui utilise les fonctions OpenCV en utilisant :

mex -O "mxFunc.cpp" -I"C:\OpenCV2.1\include/opencv" -L"C:\OpenCV2.1\lib" -lcv210 -lcvaux210 -lcxcore210 -lhighgui210

Cependant, après être passé à une version 64 bits de MATLAB, j'obtiens maintenant des symboles non résolus, par exemple :

mxFunc.obj : erreur LNK2019: symbole externe non résolu cvReleaseImage référencé dans la fonction mexFunction

Comment puis-je résoudre ce problème ?

Système : Windows 7 64 bits ; MSVC 2005 ; MATLAB R2010b 64 bits ; OpenCV 2.1.0.

3voto

tr3w Points 208

Généralement: Vous devez recompiler les bibliothèques utilisées en 64 bits.

D'après ce que je sais, ce n'est pas suffisant. Si vous utilisez STL (et OpenCV en utilise beaucoup), vous devez utiliser la même version CRT que celle utilisée par Matlab. Vous devez donc utiliser la même version de MSVC que les gens de Mathworks...

Vous pouvez vérifier la dépendance de libmex.dll pour déterminer quelle CRT est nécessaire. Ensuite, vous devez installer la bonne version de Visual C++ (normalement la version gratuite est suffisante).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X