Forum Programmation.c autotools et library externes.

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes : aucune
0
8
mai
2015

Salut les C,

En faisant un 3ième build de software avec les autotools, j'ai remarquer que dès que une library externe a la glibc entre en jeu automake ne marche pas.

En faites j'ai fait 2 build pour des programmes gtk+3.0.

Et cela ne fonctionne pas ; pour explication j'ai trouver:

*) les automake ne gère pas pkg-config.

*) automake génère des lignes de build qui ne sont pas dans le bon ordre même si l'on met le linking manuellement en affectant les variables:

+) AM_LDFLAGS
+) monprog_LDADD

Concernant gtk+3.0 cela se termine par une compilation avec les symboles de gtk+3 non-résolus.

Puis j'ai fait un 3ième build avec -lSDL2 -lSDL2_image -lSDL2_ttf

Là les symboles sont résolu grâce aux variables décrit plus haut.

Mais le programme compiler démarre en abort, bref ne fonctionne pas non plus…

Comme solution j'ai simplement utilisé autoconf afin d'avoir un garde fou pour les dépendances.

Et j'ai pas utiliser automake mais un Makefile écrit a la mains.

Je ne sais pas ce que je fait de travers, je rappelle que j'ai diagnostiquer une ligne de compilation pas dans le bon ordre.

Merci pour vos réponses et votre aide précieuse car c'est vraiment trop dommage.

  • # regarde des exemples

    Posté par  . Évalué à 1.

    Les autotools permettent d'utiliser :

    • pkg-config à l'aide de la macro PKG_CHECK_MODULES
    • des LDFLAGS dans le bon ordre. Il y a plusieurs moyens de manipuler les LDFLAGS :
      • dans le Makefile.am : xxx_LDADD ou xxx_LDFLAGS (xxx étant le nom de ton exécutable)
      • sur la ligne de commande : configure LDFLAGS=…

    Je te conseille de regarder des exemples sur d'autres bibliothèques. Par exemple : radvd-2.10, coreutils-8.21, curl-7.37.0,…

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.