Forum Programmation.c++ C++: CDT et auto-tools sous Linux

Posté par  .
Étiquettes : aucune
-1
21
oct.
2010
Bonjour,

J'ai à peu près le même problème.

Deux projets Eclipse:
1 une bibliothèque partagée C++
2 un exécutable

L'exécutable utilise la bibliothèque et ses fichiers headers

Mon code:
#include "mylib.h" // ou #include <mylib.h>
using namespace mylib;

main ...
{
..
Object1 o = new Object1();
}


J'utilise CDT sous Linux avec les auto-tools Linux.
Le problème est de faire prendre en compte le chemin de sources et d'exécutables de la bibliothèque "mylib" par le projet exécutable, pour la compilation et l'exécution.
  • # Un café

    Posté par  . Évalué à 1.

    Excusez moi j'ai mal dormi.
    • [^] # Re: Un café

      Posté par  . Évalué à 1.

      Après un café ça va mieux:

      changer dans le MAKEFILE:
      CPPFLAGS =
      en
      CPPFLAGS = -I chemin/vers/headersC++ -L chemin/vers/blibliothèqueC++

      et dans le main:
      Object1 o = new Object1();
      en
      Object1 o();
      • [^] # Re: Un café

        Posté par  . Évalué à 1.

        Finalement il y a un problème: j'ajoute les flags au Makefile qui est regénéré à chaque ./configure
        • [^] # Re: Un café

          Posté par  (site Web personnel) . Évalué à 1.

          Au lieux de mettre ces flags qui sont pour les includes et l'édition de liens dans le CFLAGS, fait plutôt quelque chose comme cela:

          LIBS = -lmylib
          INCLUDES = -L/path/to/mylib
          LDFLAGS = $(INCLUDES) $(LIBS)

          Et il ne faut effectivement pas faire ces modifs dans le Makefile mais tu peux les mettre dans le Makefile.in (à condition que celui-ci ne soit pas ré-généré à chaque fois). Sinon, ce sera dans le Makefile.am (que je n'ai jamais utilisé, je me fait mon Makefile.in à la main et configure génère le Makefile)

          Mathias

Suivre le flux des commentaires

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