Partage
  • Partager sur Facebook
  • Partager sur Twitter

[CodeBlocks] Problème de linker

Sujet résolu
    3 mars 2008 à 19:21:43

    Bonsoir à tous,

    J'ai un problème de linker avec CodeBlocks, dernière version (8.02). Voici mes fichiers :

    main.cpp
    1. #include <iostream>
    2. #include "test.h"
    3. using namespace std;
    4. int main()
    5. {
    6.     cout << "Hello world!" << endl;
    7.     test t1, t2;
    8.     test* t3;
    9.     t3 = new test();
    10.     delete t3;
    11.     return 0;
    12. }


    test.h
    1. #ifndef TEST_H
    2. #define TEST_H
    3. #include <iostream>
    4. class test
    5. {
    6.   public:
    7.     test();
    8. };
    9. #endif


    test.cpp
    1. #include "test.h"
    2. test::test()
    3. {
    4.     std::cout<<"Test effectué ! "<<std::endl;
    5. }


    Et la petite erreur qui va bien :

    Citation : Code Blocks

    undefined reference to 'test::test()'



    J'ai pas l'habitude te bidouiller les options de compilateur, donc j'vois pas vraiment où se situe le problème. Je comprends pas qu'il ne lise pas mon fichier test.cpp... :/

    Je suis sous Vista, et j'utilise le compilateur GCC de MinGW installé automatiquement avec Code Blocks version 8.02.

    Merci d'avance aux âmes charitables qui m'aideront ! ;)

    Warshadow
    • Partager sur Facebook
    • Partager sur Twitter
      3 mars 2008 à 19:30:16

      regarde si t'a bien inclus test.cpp dans le projet (avent je comprenais pas pk sa me faisait la même chose que toi) il faut l'inclure dans debug et realise (ta 2 cases a cocher)
      • Partager sur Facebook
      • Partager sur Twitter
        3 mars 2008 à 19:35:57

        Merci, ça marche. En attendant, si quelqu'un veut m'expliquer l'intérêt de la chose, je suis tout ouïe.
        • Partager sur Facebook
        • Partager sur Twitter
          3 mars 2008 à 21:36:27

          J'y connaît pas grand chose mais bon,

          Release et Debug sont les deux "cibles" par défaut de Codeblocks, ainsi lorsque tu compile, tu as obligatoirement choisi une de ces deux cibles (debug par défaut).

          Si tu n'ajoute pas le fichier au cibles, Codeblocks comprendra que tu ne veut pas l'inclure à la compilation et le zappera.

          Ainsi à partir d'un même code tu peut créer pleins de cibles différentes (ex: une pour linux / une pour windows).

          J'espère que j'ai été suffisamment clair, pour plus d'infos : http://wiki.codeblocks.org/index.php?title=The_build_process_of_Code::Blocks
          • Partager sur Facebook
          • Partager sur Twitter
            9 mars 2008 à 21:26:46

            interessant ca tiens, effectivement, j'avais le meme type de probleme CB m'envoyait une undeclared reference a mon constructeur! effectivement, comme tu le suggeres, il fallait que je coche debug ET release a priori, mais la CB me degaine un truc rigolo, il m'ouvre un fichier locale_facets.tcc (non incluse dans le projet directement donc) qui me met une erreur a la ligne 2494 qui est la suivante: const size_t __n = __grouping_tmp.size() - 1; !!!!!!

            alors que mon projet est du type de ceux montré par mateo dans son tuto sur les boites de dialogue avec Qt (je pense que ca doit etre un pb de config, parce que en console ca compile correctement...mais lequel???)

            EDIT: j'ai rien dit, il fallait rajouter le moc qu'il cree lors de la premiere compile au projet et relancer la compilation... et la ca roule!
            • Partager sur Facebook
            • Partager sur Twitter
              1 avril 2008 à 8:24:09

              Le moc??? c'est à dire? parce que j'ai le meme probleme citée par sfmaniaque! comment resoudre ceci?

              merci!
              • Partager sur Facebook
              • Partager sur Twitter

              [CodeBlocks] Problème de linker

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown