2016-05-30 2 views
1

Je souhaite utiliser LiBSVM avec Matlab R2016a sous Windows 7 64 bits avec le compilateur MinGW64 et les fichiers mex précompilés ne fonctionnaient pas pour moi. Lorsque j'ai essayé d'exécuter le fichier make standard fourni avec LibSVM, l'erreur suivante se produit: * Construire avec 'Compilateur MinGW64 (C)'. erreur en utilisant gcc MEX: erreur: -fexceptions: Aucun fichier ou répertoire * Le makefile ressemble à ceci:Compilation de LIBSVM pour Matlab R2016a

mex CFLAGS="\$CFLAGS -std=c99" -largeArrayDims libsvmread.c 
mex CFLAGS="\$CFLAGS -std=c99" -largeArrayDims libsvmwrite.c 
mex CFLAGS="\$CFLAGS -std=c99" -I.. -largeArrayDims svmtrain.c ../svm.cpp svm_model_matlab.c 
mex CFLAGS="\$CFLAGS -std=c99" -I.. -largeArrayDims svmpredict.c ../svm.cpp svm_model_matlab.c 

Dans une autre réponse à une question stackoverflow j'ai vu que quelqu'un a utilisé ce code pour la compilation:

mex -O -largeArrayDims libsvmread.c 
mex -O -largeArrayDims libsvmwrite.c 
mex -O -I.. -largeArrayDims svmtrain.c ../svm.cpp svm_model_matlab.c 
mex -O -I.. -largeArrayDims svmpredict.c ../svm.cpp svm_model_matlab.c 

Cela fonctionne également pour moi. Quelle est la différence entre les deux méthodes de compilation de LibSVM et y a-t-il des inconvénients à utiliser la seconde option?

modifier: c'est la question si je l'ai mentionné: http://ch.mathworks.com/matlabcentral/newsreader/view_thread/297195 après avoir fait un peu plus de recherche, je compris que std = c99 choisit version alternative qui ne sont pas pleinement mis en œuvre pour gcc sous Windows et -O permet d'optimiser la code objet. Dans http://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html#f213, les développeurs mentionnent qu'ils n'utilisent aucune fonctionnalité de languge c99. Donc, la compilation de la bibliothèque ne devrait pas avoir d'inconvénients, non?

+0

pouvez-vous lier à l'autre question SO? – Memming

Répondre