2012-10-21 4 views
0

Je crée un fichier cpp qui utilise la bibliothèque opencv. J'inclus cv.h et mon Application.mk aindk build avec opencv

LOCAL_LDLIBS := "C:\OpenCV2.1\lib\cxcore210.lib" "C:\OpenCV2.1\lib\highgui210.lib" "C:\OpenCV2.1\lib\cvaux210.lib" "C:\taucs_full\lib\win32\libtaucs.lib" 

mais je ne peux pas appeler une fonction, par exemple cvSaveImage. J'ai regardé à travers le répertoire opencv et j'essaie de trouver le fichier cpp qui implémente ces fonctions mais ne trouve pas. Alors, comment puis-je le faire?

+0

Quel est le message d'erreur lorsque vous essayez d'appeler cvSaveImage? –

+0

Erreur de référence non définie, car opencv lib fournit des fichiers d'en-tête et un fichier lib. Connaissez-vous cette lib? recherche à travers mais pas de résultats. –

+0

Votre 'LOCAL_LDLIBS' liste les versions Windows des bibliothèques OpenCV (_how do you know? _ Parce qu'elles ont l'extension' .lib'). Pour créer votre bibliothèque native Android, vous devez d'abord créer OpenCV pour Android, en utilisant NDK et sa chaîne d'outils gcc. Cela produira des fichiers comme 'libxccore210.a', etc. Vous allez ajouter ces fichiers à' LOCAL_LDLIBS'. Notez également que cette définition doit être placée dans le fichier 'Android.mk', pas dans' Application.mk'! –

Répondre

1

Votre LOCAL_LDLIBS répertorie les versions Windows des bibliothèques OpenCV (comment puis-je savoir? Parce qu'ils ont .lib extension). Pour créer votre bibliothèque native Android, vous devez d'abord créer OpenCV pour Android, en utilisant NDK et sa chaîne d'outils gcc. Cela produira des fichiers comme libcxcore210.a, etc. Vous allez ajouter ces fichiers à LOCAL_LDLIBS (notez que lib et .a sont cachés):

LOCAL_LDLIBS += -Lc:/opencv2.1/libandroid -lcxcore210 -lhighgui210 -lcvaux210 

Notez également que cette définition devrait être mis en Android.mk fichier , pas Application.mk!

Questions connexes