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.
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.
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 ?
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 :
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 ?
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 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...
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.
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 !
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...
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)
× 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.
Bonhomme !! | Jeu de plateforme : Prototype.
Bonhomme !! | Jeu de plateforme : Prototype.