Partage
  • Partager sur Facebook
  • Partager sur Twitter

[OpenSSL] Bibliothèque statique

Visual Studio

    17 mai 2017 à 14:08:16

    Bonjour a tous et a toutes !

    Désolé de déranger, mais j'ai une question simple, dont je n'arrive pas a trouver la réponse.

    Je veux écrire une bibliothèque statique sous Windows avec Visual Studio. Cette bibliothèque sera basée sur OpenSSL. Mais je n'arrive pas a savoir si il est possibles d'utiliser OpenSSL complétement en statique

    Je veux en effet que mon programme ait juste à inclure ma lib a la compilation, et qu’après ce programme puisse être exécuter sans dépendance depuis windows XP a 10.

    Ma question est simplement: est-ce possible ?

    Merci a tous par avance !

    -
    Edité par Benzouye 18 mai 2017 à 16:43:27

    • Partager sur Facebook
    • Partager sur Twitter
      18 mai 2017 à 16:44:02

      Bonjour,

      Tu parles de C ou de C# ?

      • Partager sur Facebook
      • Partager sur Twitter
      Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
        18 mai 2017 à 21:03:03

        Salut et merci de ta réponse... Je programme en C, j'ai horreur du C# !
        • Partager sur Facebook
        • Partager sur Twitter
          20 mai 2017 à 7:03:49

          Up, sérieux, elle est si co*** que ca ma question ?
          • Partager sur Facebook
          • Partager sur Twitter
            20 mai 2017 à 10:24:43

            Salut,

            Ce n'est pas que ta question est con, c'est simplement que personne ne sait.

            • Partager sur Facebook
            • Partager sur Twitter

            Bonhomme !! | Jeu de plateforme : Prototype.

              20 mai 2017 à 21:52:37

              Sérieux ? Pourtant j'ai vu sur le forum des programmeurs bien plus avancer...
              • Partager sur Facebook
              • Partager sur Twitter
                20 mai 2017 à 22:15:20

                Re,

                Ce sont plutôt des débutants ici. Les plus "Experts" ne sont pas toujours là, ou ne tombent pas sur ton message.

                • Partager sur Facebook
                • Partager sur Twitter

                Bonhomme !! | Jeu de plateforme : Prototype.

                  20 mai 2017 à 22:31:42

                  Et surtout, sans même parler de compétences, pour pouvoir répondre à ta question, il y a deux possibilités.

                  1. Avoir déjà utilisé OpenSSL et s’être demandé s’il était possible de l’utiliser en statique (ça réduit déjà le nombre de personnes).
                  2. Faire une recherche, lire la doc et assimilés pour trouver l’information (et on ne va pas le faire à ta place, hein ;) ).

                  Avec ça, on comprend le peu de réponses que tu obtiens.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
                    21 mai 2017 à 14:18:42

                    Humouais, mais j'ai chercher, et j,ai rien trouvé d'explicite...
                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 mai 2017 à 23:25:58

                      Toujours pas ? Avant der up, après je ferme le topic
                      • Partager sur Facebook
                      • Partager sur Twitter
                        27 mai 2017 à 0:08:22

                        Dernier up... Svp filez moi un coups de pied !
                        • Partager sur Facebook
                        • Partager sur Twitter
                          27 mai 2017 à 11:44:11

                          Bonjour, ton sujet a piqué ma curiosité. En cherchant 2 minutes j'ai trouver le wiki de OpenSSL https://wiki.openssl.org/index.php/Compilation_and_Installation j'ai pu voir que l'on peut faire un configure avec l'option no-shared qui permet de compiler en statique. il suffira aux utilisateurs de ta lib de link avec la lib libssl.a et libcrypto.a

                          Sous linux, la marche a suivre est :

                          git clone git://git.openssl.org/openssl.git

                          ./configure no-shared

                          make

                          Sous Windows la manip doit être plus ou moins la même, a toi de faire quelques recherches.

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Quel est le numéro d'une poule?  4 4 4 7 1 9
                            27 mai 2017 à 15:46:54

                            Ah, merci, mais est-ce faisable avec visual, qui digère pas les .a ? Et quand tu dis que mes utilisateurs auront qu'à linker,  tu veux dire si il veulent recompiler ma lib ?

                            -
                            Edité par TomAnderson1 27 mai 2017 à 15:51:13

                            • Partager sur Facebook
                            • Partager sur Twitter
                              27 mai 2017 à 16:35:06

                              nan linker c'est liée les .o entre eux (gcc main.o functions.o -o monbinaire -lssl) cette commande permet de liée les fichiers .o et les lib static (que l'on peut vulgarisé à une liste de .o) pour créer ton binaire

                              Edit :

                              du coup si quelqu'un (ou toi x) ) veux utilisé ta lib suffi de compiler tout les .c en .o puis faire un truc du style :

                              gcc main.o functions.o -o monbinaire -lssl -lcrypto -lta_lib)

                              avec -lssl pour libssl.a, -lcrypto pour libcrypto.a et -lta_lib pour (imaginon) libta_lib.a

                              Apres c'est normal que Visual n'aime pas les .a, se sont des librairie pour UNIX, mais il doit y avoir équivalant pour Windows.

                              -
                              Edité par RetoXe 27 mai 2017 à 16:39:20

                              • Partager sur Facebook
                              • Partager sur Twitter
                              Quel est le numéro d'une poule?  4 4 4 7 1 9
                                27 mai 2017 à 17:20:48

                                On est d'accord, mais si je compile ma lib, après dans le programme final j'ai juste à faire -mali, non ? Et pour visual, ma question c'était plus: est-ce que je peux compiler openssl avec l'option no-shared dans visual pour obtenir libss.lib et libcrypt.lib ?
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  27 mai 2017 à 17:26:45

                                  Je n'ai jamais utiliser msvc (si je ne dit pas de betise c'est bien ça ?) mais j'imagine que des info sur comment compiler OpenSSL pour Windows sont trouvable sur internet.

                                  Edit :

                                  TomAnderson1 a écrit:

                                  après dans le programme final j'ai juste à faire -mali, non ?

                                  J'ai du mal a comprendre cette partie par contre ^^

                                  -
                                  Edité par RetoXe 27 mai 2017 à 17:30:20

                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                  Quel est le numéro d'une poule?  4 4 4 7 1 9
                                    27 mai 2017 à 18:53:08

                                    Tu me dit de faire comme ca pour compilet un prog avec ma lib: gcc main.o functions.o -o monbinaire -lssl -lcrypto -lta_lib

                                    mais étant donné que ma lib a déjà était compiler avec openssl en static, j'ai pas besoin de faire -lssl et -lcrypto, non ?

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      13 juin 2017 à 17:41:42

                                      J'ai tout essayer: en linkant avec https://github.com/David-Reguera-Garcia-Dreg/Precompiled-OpenSSL-Windows, ou les librairies sont sensées etre statiques, j'obtiens au démarrage du prog j'obtiens "il manque libcryptoMD.dll sur votre ordinateur". Pourquoi ?! Je commence a douter que ce soit possible...

                                      -
                                      Edité par TomAnderson1 13 juin 2017 à 17:43:19

                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        17 juin 2017 à 22:42:58

                                        Up, je suis d d'insister mais j'ai besoin d'une réponse...
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          19 juin 2017 à 9:58:17

                                          Encore un up, je perds pas espoir
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            25 juin 2017 à 3:49:48

                                            Tout est expliqué ici : https://wiki.openssl.org/index.php/Compilation_and_Installation

                                            Une bibliothèque (un .a) est un ensemble de fichiers objets (.o), provenant de leurs fichiers de code source (.c) respectifs.

                                            Il suffit de la linker à la compilation avec tes autres fichiers.

                                            Je suis sûr qu'avec un peu de recherches et de débrouillardises, tu réussira ; recommence ton installation depuis le début, et suit, étape par étape le processus d'installation.

                                            Bon courage,

                                            Hector;

                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              25 juin 2017 à 15:00:06

                                              Merci beaucoup de ta réponse, je désespérais. Le fait est que j'ai toujours la même erreur. Que ce soit avec OpenSSL, libSSH ou libCurl, je link tout, ca compile et au lan j'obtiens tjrs qu'il me manque la DLL correspondand. Et bien sûr si je la met dans le répertoire de l'application, tout fonctionne correctement ! Je suis d'accord que la persévérance finis par payer, mais au point où j'en suis c'est carrément de l'acharnement !
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                26 juin 2017 à 2:10:54

                                                As-tu finalement réussi ce que tu voulais faire?

                                                Si ce n'est que télécharger une DLL (par tous les dieux romains et grecs, pourquoi cela existe-t-il?), le problème est enfin résolu!

                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  26 juin 2017 à 15:02:17

                                                  Non, toujours pas. Avec l'utilisation d'une DLL, le problème est résolu depuis longtemps, mais justement mon objectif est de ne PAS avoir de DLL, juste mon exécutable...
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    26 juin 2017 à 15:34:29

                                                    Merge DLL with exe? Un truc du genre?

                                                    Premier résultat de recherche : https://stackoverflow.com/questions/189549/embedding-dlls-in-a-compiled-executable

                                                    Et pourquoi ne pas avoir de DLL? Tu ne peux pas créer un script/ code qui le télécharge et l'installe automatiquement? cf. perl/python, même si c'est pour un morceau de code.

                                                    (Je n'y connais strictement rien, je fais juste des suppositions <3)

                                                    Hector;

                                                    -
                                                    Edité par vimescape 26 juin 2017 à 15:36:13

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    [OpenSSL] Bibliothèque statique

                                                    × 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