Bonjour a tous,
Je développe actuellement un utilitaire qui a comme objectif d'aller récupérer une information sur un serveur pour appliquer le traitement associé sur le poste ou il a été déposé.
Pour être cross plateforme (PC : windows/mac, serveur : windows/mac/linux) je l'ai développé en C++.
Pour des raisons de sécurité, les échanges sont en SSL avec du TLS 1.2.
l'utilitaire fonctionne très bien et se compile sans erreurs sur les différents OS.
Je voudrait que cet utilitaire soit autonome et ne dépende d'aucuns autres composants.
C'est a ce stade que je bloque aujourd'hui :
Je choisi de mettre l'option -static a la compilation pour qu'il embarque dans le programme les bibliothèques ssl.
Au vue de la taille du programme, il semble qu'il l'embarque bien mais a l'execution, il recherche toujours les bibliothèques ssl.
exemple windows dans WinGW :
si je compile en dynamique , l'utilitaire fait 75Ko sur disque
lorsque je l'execute, il me demande les bibliothèques libcrypto-1_1.dll et libssl-1_1.dll
Si je le compile en static, il passe à 835 Ko.
ET lorsque je l'execute, il me demande également les bibliothèques.
voici la ligne que l'utilise pour la compilation.
g++ -Os -static -t --verbose -g3 -pie -MMD -MP
-I "C:\OpenSSL-Win32\include"
..\Cyb\ctx_ssl.cpp ..\Cyb\src\resources\resources.res
-o ..\Cyb\ctx_ssl.exe
-lws2_32 C:\OpenSSL-Win32\lib\MinGW\libcrypto-1_1.a C:\OpenSSL-Win32\lib\MinGW\libssl-1_1.a
Si je pose les dll dans le dossier de l'exe, cela marche!
exemple mac
meme constat : il me demande /usr/local/lib/libssl.1.1.dylib et libcrypto.1.1.dylib
ligne de compilation :
gcc -I "../Cyb/openssl/include/" ./ctx_ssl.cpp -o ./ctx_ssl
/Users/mac/Desktop/Cyb/openssl/libssl.a
/Users/mac/Desktop/Cyb/openssl/libcrypto.a
-L "../Cyb/openssl/" -lssl -lcrypto
j'ai creusé la doc de G++ mais je n e trouve pas l'option qui permettrait de forcer.
je peu vous fournir le source de base pour tester.
Merci d'avance pour votre aide.
Partager