J'essaie de construire un projet simple avec OpenCV 2.4.10 mais j'obtiens un tas d'erreurs comme celle-ci:
Symboles non définis pour l'architecture x86_64: "_Jpeg_free_large", référencé depuis: _Free_pool dans opencv2 (jmemmgr.o) "_Jpeg_free_small", référencé depuis: _free_pool in opencv2 (jmemmgr.o) _self_destruct in opencv2 (jmemmgr.o)
Voici ViewController.m
#import "ViewController.h"
#import <opencv2/opencv.hpp>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
cv::Mat greyMat;
}
Podfile
platform :ios, '8.1'
pod 'OpenCV', '2.4.10'
Le projet se construit bien lorsque j'utilise la version 2.4.9.1 ou 2.4.9.
J'ai également pu construire ce projet avec le fichier d'infrastructure téléchargé à partir de l'URL que j'ai trouvée dans podspec 2.4.10.
J'ai ajouté les nouvelles versions d'OpenCV à CocoaPods (2.4.11, 2.4.12, 2.4.12.3, 3.0.0).
Les liaisons 2.4.11, 2.4.12 et 2.4.12.3 nécessitent la liaison de libjpeg. Le module télécharge donc le référentiel, la compile à partir des sources, puis lie libjpeg en plus du fichier opencv2.framework. Cela fonctionne immédiatement avec CocoaPods, mais cela prend un certain temps lorsque vous utilisez pod install
car il compile à partir des sources. Assurez-vous simplement de ne pas l'annuler tant que cela est en cours (il y a un bug dans CocoaPods qui cause des problèmes s'il est annulé).
Sous le capot, la version 3.0.0 fonctionne comme avant avec le fichier préencodé opencv2.framework et peut désormais être installée parfaitement via CocoaPods.
La version 2.4.10 est toujours défectueuse dans CocoaPods, mais comme cette version génère des erreurs lors de la compilation à partir des sources sur ma machine, je ne peux rien faire de plus.
(Remarque: je ne suis pas le mainteneur d'origine du pod, j'ai simplement contribué à ces nouvelles versions.)
Le bogue 4052 n'est toujours pas résolu pour la version 2.4.10 et comme il n'y a pas de module pour la version 2.4.11, vous devez donc utiliser la version 2.4.9, qui est stable.
Si vous utilisez des pods
pod 'OpenCV', '2.4.9'
Alors voici une petite solution de contournement. Le problème vient du fait que le projet XCode ne peut pas être lié à la bibliothèque libjpeg.a. C'est pourquoi vous obtenez les erreurs ci-dessus lors de la compilation du projet.
Suivez ces étapes :
Semble être un problème avec la version actuelle de Open CV pour iOS
Je devrais probablement continuer à utiliser 2.4.9.
Je n'ai pas de solution pour celui-ci mais j'ai une solution de contournement ici.J'ai téléchargé le projet de ici . Et copié le cadre et l'en-tête de ce projet dans mon projet.
Le même problème que j'ai rencontré avec CV ouvert et a trouvé un lien utile ci-dessous qui a résolu mes erreurs de mon projet:
http://blog.csdn.net/iOSLearner_Nana/article/details/45174365