Installation logiciel en ligne de commande (problème de make)

Résolu
in_die Messages postés 52 Date d'inscription   Statut Membre Dernière intervention   -  
jisisv Messages postés 3678 Statut Modérateur -
Bonjour tout le monde,
je souhaite installer le logiciel surface evolver sur ubuntu 14.04, mais la logithèque ubuntu ne propose que la version 2.3 qui est trop ancienne pour mes besoins au travail. Donc j'ai téléchargé "evolver-2.70.tar.gz" et procédé aux instructions, mais impossible de l'installer.
Au make, j'obtiens

avec le choix "Start of system choices"
<
:src$ make
gcc -O3 -DGENERIC calcforc.o variable.o trirevis.o stringl.o stringq.o model.o fixvol.o query.o matrix.o grapher.o painter.o filml.o filmq.o torvol.o lexinit.o graphgen.o modify.o userio.o boundary.o curtest.o display.o yexparse.o lexyy.o ytab.o hessian.o evaltree.o cnstrnt.o verpopst.o popfilm.o machine.o veravg.o pixgraph.o tmain.o tordup.o wulff.o help.o psgraph.o check.o utility.o skeleton.o storage.o dump.o iterate.o filgraph.o zoom.o softimag.o mvgraph.o diffuse.o sqcurve.o klein.o command.o hidim.o simplex.o metric.o torus.o quotient.o alice.o sdrv.o odrv.o userfunc.o kusner.o simequi2.o geomgraph.o symtable.o exprint.o quantity.o meanint.o mindeg.o dodecGroup.o registry.o khyp.o gauss.o knot1.o eval_all.o lexinit2.o evalmore.o knot2.o knot3.o teix.o sqcurve2.o hessian2.o hessian3.o method1.o method2.o method3.o bk.o method4.o method5.o eval_sec.o sqcurve3.o metis.o lagrange.o nulgraph.o -o evolver -lm
evalmore.o: dans la fonction « more_other_stuff »:
evalmore.c:(.text+0x87f7): référence indéfinie vers « set_graphics_title »
evalmore.c:(.text+0x89e0): référence indéfinie vers « set_graphics_title »
evalmore.c:(.text+0x89f4): référence indéfinie vers « set_graphics_title »
collect2: error: ld returned 1 exit status
make: *** [evolver] Erreur 1
>

avec le choix "Generic Unix"
<:src$ make
gcc -O3 -DGENERIC -c xgraph.c
xgraph.c:56:22: fatal error: X11/Xlib.h: Aucun fichier ou dossier de ce type
#include <X11/Xlib.h>
^
compilation terminated.
make: *** [xgraph.o] Erreur 1
>

Pouvez vous m'aider à l'installer svp, j'en ai besoin pour mon travail.
Sinon, y a t-il un moyen de faire remonter l'info à la logithèque Ubuntu, afin qu'une version plus récente soit disponible?

Dans l'attente de votre aide.
Merci par avance.

indie

3 réponses

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    Au vu du message
    xgraph.c:56:22: fatal error: X11/Xlib.h: Aucun fichier ou dossier de ce type
    #include <X11/Xlib.h>

    installe déjà les fichiers en-tête de X11:
    Sous ma Debian :
    johand@bata:~/www/data/sqlite$ dpkg -S $(locate X11/Xlib.h)
    libx11-dev:amd64: /usr/include/X11/Xlib.h


    Sous Ubuntu, tu installeras donc libx11-dev avec une commande du genre:
     sudo apt-get install libx11-dev
    . Ceci ne garantissant bien entendu aucunement l'absence d'autres packages de développement.
    Notons que sous ma Debian Stretch , une recherche me donne ceci:
    johand@bata:~/www/data/sqlite$ apt-cache show evolver
    Package: evolver
    Version: 2.30c.dfsg-3
    ...

    Essaye de trouver un dépôt qui contient une version debianisée du logiciel adaptée à tes besoins(backports...).

    Si j'ai le temps , je compilerai depuis les sources afin d'examiner les besoins pour la compilation.
    man apt-cache; man dpkg
    Gates gave ^W sold you the windows.
    GNU gave us the whole house.(Alexandrin)
    0
    1. jisisv Messages postés 3678 Statut Modérateur 936
       
      J'examine la situation avec les options "Linux Xwindows"

      J'ai eu une erreur concernant un membre non défini de lstruct webstruct. Jai ajouté à tout hasard un int hide_flag dans web.h.
      johand@bata:~/src/evolver-2.70/src$ diff web.h web_org.h
      199,200c199
      < int hide_flag;
      < };
      ---
      > }
      ;

      J'obtiens en fin de make l'erreur suivante:

      make -k
      gcc -O3 -DLINUX -DOOGL calcforc.o variable.o trirevis.o stringl.o stringq.o model.o fixvol.o query.o matrix.o grapher.o painter.o filml.o filmq.o torvol.o lexinit.o graphgen.o modify.o userio.o boundary.o curtest.o display.o yexparse.o lexyy.o ytab.o hessian.o evaltree.o cnstrnt.o verpopst.o popfilm.o machine.o veravg.o pixgraph.o tmain.o tordup.o wulff.o help.o psgraph.o check.o utility.o skeleton.o storage.o dump.o iterate.o filgraph.o zoom.o softimag.o mvgraph.o diffuse.o sqcurve.o klein.o command.o hidim.o simplex.o metric.o torus.o quotient.o alice.o sdrv.o odrv.o userfunc.o kusner.o simequi2.o geomgraph.o symtable.o exprint.o quantity.o meanint.o mindeg.o dodecGroup.o registry.o khyp.o gauss.o knot1.o eval_all.o lexinit2.o evalmore.o knot2.o knot3.o teix.o sqcurve2.o hessian2.o hessian3.o method1.o method2.o method3.o bk.o method4.o method5.o eval_sec.o sqcurve3.o metis.o lagrange.o xgraph.o -L/usr/X11R6/lib -lX11 -o evolver -lm
      evalmore.o: dans la fonction « more_other_stuff »:
      evalmore.c:(.text+0x852e): référence indéfinie vers « set_graphics_title »
      evalmore.c:(.text+0x856a): référence indéfinie vers « set_graphics_title »
      evalmore.c:(.text+0x857e): référence indéfinie vers « set_graphics_title »
      collect2: error: ld returned 1 exit status
      Makefile:233: recipe for target 'evolver' failed
      make: *** [evolver] Error 1


      set_graphics est défini dans glutgraph.c. Je l'ajoute donc glutgraph.o dans la liste OBJ
      Ce qui donne:make -k
      gcc -O3 -DLINUX -DOOGL -c glutgraph.c
      glutgraph.c: In function `glut_catcher':
      glutgraph.c:2066:11: error: `SIGKICK' undeclared (first use in this function)
      signal(SIGKICK,glut_catcher);
      ^
      glutgraph.c:2066:11: note: each undeclared identifier is reported only once for each function it appears in
      glutgraph.c: In function `draw_thread':
      glutgraph.c:2100:20: warning: implicit declaration of function `pthread_self' [-Wimplicit-function-declaration]
      draw_thread_id = pthread_self(); /* get thread id */
      ^
      glutgraph.c:2103:3: warning: implicit declaration of function `pthread_setspecific' [-Wimplicit-function-declaration]
      pthread_setspecific(thread_data_key,(void*)&glutgraph_thread_data);
      ^
      glutgraph.c:2103:23: error: `thread_data_key' undeclared (first use in this function)
      pthread_setspecific(thread_data_key,(void*)&glutgraph_thread_data);
      ^
      glutgraph.c:2288:11: error: `SIGKICK' undeclared (first use in this function)
      signal(SIGKICK,glut_catcher);
      ^
      glutgraph.c: In function `display':
      glutgraph.c:3405:22: error: `SIGKICK' undeclared (first use in this function)
      kill(draw_pid,SIGKICK); /* unix version of kick */
      ^
      Makefile:244: recipe for target 'glutgraph.o' failed
      make: *** [glutgraph.o] Error 1
      make: Target 'evolver' not remade because of errors


      A ce point, il faut commencer une recherche sur le fond. Il y a des SIG* que je ne connais pas et qui ne sont pas référencés sur le net.
      Un conseil :installe et lis la documentation de apt-file, mets la base de données associée à jour.

      N'as-tu pas trouvé un rapport de compilation/constuction de cette version ?
      Je continue mes recherches.

      Bon amusement.
      0
  2. in_die Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci pour ta réponse.

    En effet, entre temps j'avais installé la librairie, mais ca ne marche toujours pas:

    :src$ make
    gcc -O3 -DGENERIC -I/usr/include/X11 -c xgraph.c
    xgraph.c: In function `xgraph_facet':
    xgraph.c:247:11: error: `struct webstruct' has no member named `hide_flag'
    if ( web.hide_flag && (t->color != CLEAR) && (t->color != UNSHOWN) )
    ^
    make: *** [xgraph.o] Erreur 1


    une idée?
    0
  3. in_die Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci beaucoup pour toute votre aide.

    J'ai contacté le développeur, problème résolu!

    En compilant avec Linux OpenGL, il faut d'abord supprimer les *.o qui sont liés à l'option -DPTHREADS.

    Voilà :)
    0
    1. jisisv Messages postés 3678 Statut Modérateur 936
       
      Content pour toi. Comme mathématicien je vais étudier cela en détail.
      Du coup merci !!!
      0