OS X AMC 1.2.1 macport build échoue après la mise à jour OpenCV 3.0.0 (Bug #368)


Added by Joël Brogniart almost 10 years ago. Updated about 8 years ago.


Status:Closed Start date:06/17/2015
Priority:Normal Due date:
Assignee:- % Done:

100%

Category:-
Target version:-

Description

Bonjour, un signalement d'échec du build Macports d'AMC 1.2.1 après la mise à jour d'OpenCV 3.0.0 viens d'arriver sur https://trac.macports.org/ticket/48074.

Je vais essayer de reproduire ça.


History

Updated by Joël Brogniart almost 10 years ago

Le fichier concerné par le problème de link est "amc-detect.cc".

La version d'OpenCV installée maintenant par MacPorts est la version 3.0.0 et il y a eu un peu de réorganisation. Il semblerait que pour la version 1.2.1 dans MacPorts, un simple changement dans le fichier "Makefile-macports.conf" résolve le problème.

Il faut y ajouter une nouvelle librairie OpenCV dans les options de compilation et transformer

GCC_OPENCV=-I$(BASEPATH)/include/opencv -lopencv_core -lopencv_highgui -lopencv_imgproc

en
GCC_OPENCV=-I$(BASEPATH)/include/opencv -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_imgcodecs

Je fais quelques tests supplémentaires et demanderai quelques renseignements complémentaires côté MacPorts. Si tout va bien je proposerai un patch et une modification du fichier de port. Côté AMC il n'y a rien à changer.

Par contre, il est probable que cette version d'OpenCV se propage un peu partout et qu'il faille adapter la version actuelle d'AMC. J'ai trouvé le truc à changer à partir des informations trouvées dans http://docs.opencv.org/master/db/dfa/tutorial_transition_guide.html.

Updated by Joël Brogniart almost 10 years ago

Les tests se sont bien passé. J'ai soumis des modifications du port pour AMC 1.2.1 à MacPorts et les modifications ont été acceptées. Donc tout est réglé côté MacPorts.

Updated by Joël Brogniart almost 10 years ago

J'ai oublié : pour que le nouveau fichier de définition soit pris en compte sur votre installation, il faut mettre à jour MacPorts avec la commande suivante.

sudo port selfupdate

Updated by Joël Brogniart almost 10 years ago

Le problème existe aussi pour la version de développement d'AMC.

Updated by Alexis Bienvenüe almost 10 years ago

Est-ce que MacPorts fournit également pkg-config, qui permettrait d'utiliser les commandes suivantes ?

pkg-config --cflags opencv
pkg-config --libs opencv

Il suffirait alors de supprimer les lignes définissant GCC_OPENCV et GCC_OPENCV_LIBS dans Makefile-macports.conf.

Updated by Joël Brogniart almost 10 years ago

Dès que j'ai un moment je jette un œil là dessus, mais j'ai peur de ne pas pouvoir faire de tests dans le journée et après je pourrais rien faire avant le mois de septembre, mon avion pour le bout du monde part demain matin ;-)

Updated by Joël Brogniart almost 10 years ago

Par contre je vois un problème potentiel qui est lié au fonctionnement de Macports. Un fichier de port Macport (Portfile) contient des informations et options qui sont calculées au moment où on demande l'installation du port et certaines informations peuvent ne pas être disponibles car elles sont fournies par des outils qui ne seront installés que plus tard car ils sont dans la chaine des dépendences. Je galère en ce moment pour obtenir de l'information sur Perl au bon moment quand ils n'est pas installé lors de la demande d'installation d'AMC.

Updated by Alexis Bienvenüe almost 10 years ago

Peut-être peut-on s'en sortir avec quelque chose comme depends_build (si je comprends bien ceci) ?

Updated by Joël Brogniart almost 10 years ago

Si opencv n'est utilisé que pour le build d'AMC, c'est là qu'il faut mettre la dépendance à opencv. Pour l'instant j'ai indiqué la dépendance avec depends_lib. Mais je ne pense pas que ça résoudra le problème de librairie non trouvée.

Updated by Joël Brogniart over 9 years ago

Alexis Bienvenüe wrote:

Est-ce que MacPorts fournit également pkg-config, qui permettrait d'utiliser les commandes suivantes ?
[...]
Il suffirait alors de supprimer les lignes définissant GCC_OPENCV et GCC_OPENCV_LIBS dans Makefile-macports.conf.

Je peux ajouter une dépendance à pkg-config pour la phase de construction et supprimer ces lignes. Est-ce que cela suffira ou faut-il d'autres modifications ?

Updated by Joël Brogniart over 9 years ago

Alexis Bienvenüe wrote:

Est-ce que MacPorts fournit également pkg-config, qui permettrait d'utiliser les commandes suivantes ?
[...]
Il suffirait alors de supprimer les lignes définissant GCC_OPENCV et GCC_OPENCV_LIBS dans Makefile-macports.conf.

Je peux ajouter une dépendance à pkg-config pour la phase de construction et supprimer ces lignes. Est-ce que cela suffira ou faut-il d'autres modifications ?

Pendant que j'y suis avec les ports OpenCV et pkg-config installé, j'obtiens les infos suivantes.

bash$ pkg-config --cflags opencv
-I/opt/local/include/opencv -I/opt/local/include 
bash$ pkg-config --libs opencv
-L/opt/local/lib -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core -lopencv_hal 

Updated by Alexis Bienvenüe about 8 years ago

Marqué résolu sur MacPorts.

  • % Done changed from 0 to 100
  • Status changed from New to Closed

Also available in: Atom PDF