Partage
  • Partager sur Facebook
  • Partager sur Twitter

GMP et Qt

    22 février 2020 à 13:46:39

    Bonjour à tous,

    J'ai déjà effectué un chat en C++ (avec Qt), en m'inspirant de celui du cours de ce site, il fonctionne très bien, De plus j'ai réussi à me servir de la bibliothèque GMP, en la compilant en suivant ce tuto . J'arrive à l'utiliser avec Code::Blocks. Si vous vous demandez où est le problème ne vous inquiétez pas il arrive!

    Maintenant , mon objectif est d'utiliser GMP avec Qt, afin de pouvoir faire une messagerie sécurisée (avec un peu de RSA et autres cryptage). J'ai donc essayé de linqué comme ceci:

    Puis je l'ai appelé comme ceci:

    #include <iostream>
    #include <gmpxx.h>
    
    int main (int argc, char **argv)
    {
       std::string nombre("35");
    
       mpz_class a(16), b(nombre), c;
    
       std::cout << "le nombre a vaut : " << a << std::endl;
       std::cout << "le nombre b vaut : " << b << std::endl;
       std::cout << "le nombre c vaut : " << c << std::endl;
    
      return 0;
    }

     Ce qui m'a provoqué des erreurs du type:

    C:\...\QT\build-TIPE_Client-Desktop_Qt_5_12_3_MinGW_64_bit-Debug\debug\main.o:-1: In function `__gmp_expr<__mpz_struct [1], __mpz_struct [1]>::init_si(long)':

    C:\...\QT\TIPE_Client\gmpxx.h:1477: erreur : undefined reference to `__gmpz_init_set_si'

    ...

    J'ai donc touvé le fichier en question, 'gmpxx.h', en gros les fonctions en questions sont déclarées dans le fichier 'gmp.h', ce que j'ai fait c'est de copier, les deux fichiers en question, les ai joint au projet, il me restait les mêmes erreurs, alors que sur Code::Blocks, en délinquant les bibliothèques, et en y ajoutant les deux fichiers, le même programme s’exécutait sans problème...

    Bon j'ai fait ce que j'ai pu pour être clair, n'hésitez pas à me demander des précisons!

    Merci d'avance!

    • Partager sur Facebook
    • Partager sur Twitter
      28 février 2020 à 13:18:18

      S'il vous plais vous n'auriez pas des idées?
      • Partager sur Facebook
      • Partager sur Twitter
        28 février 2020 à 15:11:26

        Essaie d'inverser l'ordre des 2 librairies gmp et gmpxx. Avec les compilateurs GNU (gcc, clang etc), l'ordre de link dans la ligne de commande est important.

        https://gmplib.org/manual/Headers-and-Libraries.html

        -
        Edité par SpaceIn 28 février 2020 à 15:13:26

        • Partager sur Facebook
        • Partager sur Twitter
          1 mars 2020 à 17:12:04

          J'ai essayé ce que vous m'avez conseiller, mais les mêmes erreurs subsistent.

          J'ai aussi recompilé GMP, mais j'ai encore les erreurs.

          • Partager sur Facebook
          • Partager sur Twitter
            1 mars 2020 à 18:53:33

            Et avec ceci:

            LIBS += -L<repertoire où sont tes libs gmp> -lgmpxx -lgmp



            • Partager sur Facebook
            • Partager sur Twitter

            GMP et Qt

            × 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