Salut.
Je cherche a compiler un fichier de façon statique, et non dynamique, dans le but de pouvoir éxecuter l'exécutable sur un ordinateur ne possédant pas les bibliotèques que j'utilise dans ce programme.
Une autre solution serait de fournir les fichiers à inclure, ça devrais aussi fonctionner ?
Sur g++, il faut utiliser l'option -static, pour compiler de manière statique, et non dynamique, je rencontre quelques problèmes.
Lorsque j'essai cette fonctionnalité sur un programme tout simple n'incluant que iostream et stdlib, aucuns problèmes, j'y arrive.
Par contre, avec la SFML, c'est pas tout à fait la même chose.
Voici comment je compile de façon dynamique :
g++ main.cpp -lsfml-system -lsfml-window -lsfml-graphics -lsfml-audio
Da façon statique, avec la SFML, a priori, c'est comme ça :
g++ -static main.cpp -lsfml-system-s -lsfml-window-s -lsfml-graphics-s -lsfml-audio-s
Le résultat est identique si j'enlève les suffixes "-s", c'est à dire :
/usr/bin/ld: cannot find -lsfml-system-s
collect2: ld a retourné 1 code d'état d'exécution
Il me manque des fichiers .lib ou .a dans mon répertoire lib ? Car en ce moment, j'ai des fichiers xxx.so.1.5. J'ai même essayé avec les fichiers libs de la version windows, ça ca pas fonctionné, mais c'était à prévoir.