Compilation code open source

Bonsoir.
Je suis entrain de compiler pour la première fois un code open source pour voir comment ça marche (en utilisant code blocks sous ubuntu) ,
je veux savoir comment je peux éviter les erreurs que je rencontre, est ce que je peux changer le contenu ou bien ce sont juste des erreurs concernant les bibs et comme ça ..

7 réponses

Résumé de la discussion

Des erreurs d’inclusion surviennent lors de la compilation d’un code open source lorsque les fichiers d’en-tête ne sont pas accessibles et que l’on hésite entre les include avec guillemets et ceux avec crochets. Des réponses suggèrent de placer les fichiers .c et .h dans le même répertoire, d’utiliser #include "config.h" avec le chemin, ou d’opter pour les includes <config.h> lorsque nécessaire. En plus, la mise en place d’un chemin d’inclusion dans l’environnement de développement, comme les options du projet, peut résoudre les cas où config.h est supposé présent mais inaccessible. D’autres éléments utiles indiquent que la macro HAVE_CONFIG_H peut influencer l’inclusion, et que la distinction entre inclusions locales et système nécessite une convention claire des chemins à la compilation.</config.h>

Bobot (l’IA à votre service)
  1. Salut, je ne sais pas ce que tu veux compiler mais suivant la source on ne peut pas juste ajouter des dossiers dans un projet pour que ça fonctionne.
    La méthode diffère suivant le choix des développeurs mais dans la plupart des cas il faut exécuter ./configure dans le dossier pour préparer la source, des dossiers sont créé et adapté en fonction de ton système.
    Mais le plus important c'est de lire la doc (README etc).
    1. Bonjour,

      La partie :
      #ifdef HAVE_CONFIG_H
      #include "config.h"
      #else
      #error "missing config.h"
      #endif

      Va être lue par le pré-compilateur, donc si la macro HAVE_CONFIG_H n'est pas définie, il te diras dans tout les cas que le fichier est manquant.

      Il te reste à trouver où elle est définie...
      1. Contributeur
        Va être lue par le pré-compilateur, donc si la macro HAVE_CONFIG_H n'est pas définie, il te diras dans tout les cas que le fichier est manquant.
        Il te reste à trouver où elle est définie...

        HAVE_CONFIG_H n'est pas une macro mais un nom. Si ce nom a été défini (par un #define) alors la condition sera vraie.
        La question après n'est pas de savoir pourquoi config.h a été appelé ou pas. Mais pourquoi cela provoque une erreur ^^.
      2. Contributeur
        moiCmoiii,
        Comment as-tu ajouté le fichier .h ? Dans quel répertoire ? As-tu bien précisé à Code::Blocks de regarder ce répertoire ?
      3. HAVE_CONFIG_H n'est pas une macro mais un nom. Si ce nom a été défini (par un #define) alors la condition sera vraie.
        Oups en effet j'ai été un peu vite ;)

        Mais, est-ce que la directive #error est bloquante ?

        moiCmoiii C'est ta seule erreur ? Si non , log nous les toutes !
      4. Contributeur
        Mais, est-ce que la directive #error est bloquante ?
        Tout dépend de la configuration de ton compilateur...
      5. @ fiddy
        j'ai essayé 2 méthodes :
        1/ j'ai fait nv fichier il m'a demandé si je veux l'associer au projet courant j'ai accepté , puis j'ai fait un copier coller du code que j'ai trouvé sur le site de logiciel ds ce fichier que j'ai nommé config.h , j'ai compilé mais meme erreur , je me suis allée au "settings" (en haut juste avant help) puis "search directories" puis j'ai ajouté le path,

        2/ après l'exécution de plusieurs commandes je sais pas laquelle a marché , j'ai trouvé que j'ai un fichier config.h ds le package du logiciel , j'ai "add files " w et je l'ai ajouté au projet puis je faisait les memes étapes pour ajouter le path à partir de setting ..
    2. Contributeur
      Beh, le fichier config.h doit être important (vu son nom).
      Il faut que tu le trouves à tout prix ;-). Et ça, on va pas pouvoir t'aider. Sauf si tu nous donnes le nom de l'open source.
      1. j'ai ces lignes

        #ifdef HAVE_CONFIG_H
        #include "config.h"
        #else
        #error "missing config.h"
        #endif
        
        #define DOWNLOAD_PAGE "http://lcrt.googlecode.com/files</code>
        

        just après les includes,
        l'erreur c'est : error : #error "missing config.h"

        j'ai essayé d'ajouter le fichier config.h au header , mais ça marche pas en plus j'ai pas trouvé config.h , qd je fait "whereis gonfig.h" ça me donne un chemin vers un fichier "config.5ssl.gz"
        de + ds le paquet du logiciel dont je compile le code il ya config.in.h
        j'ai attaché les 2 au header et ça marche pas encore ..
        1. C'est du C ça ?
        2. Oui,
          bon pr moi je suis débutante mais c la 1ère fois que je rencontre une séquence comme ça (if et else ds la partie des includes .. )
        3. Contributeur
          Yep isrforlife. Il s'agit d'instructions préprocesseur
      2. Contributeur
        Bonjour,
        Ben ca depend des erreurs. Ca peut etre une bibliothèque manquant sur ton poste.
        En général le code source compile donc a priori pas d'erreurs dedans.
        Peux-tu poster les erreurs que tu as ?