Lorsque l'on veut lier statiquement toutes les bibliothèques disponibles en utilisant g ++, cette personne passe l'indicateur -static au compilateur.Comment forcer les bibliothèques à lier statiquement dans le créateur qt
Mais comment le faire à partir de Qt Creator?
Tout d'abord, j'ai essayé ce conseil: How to make Qt and Qtcreator link the libraries statically instead of dynamic?
Le poste suggère d'utiliser
CONFIG += static
Mais cela ne fonctionne tout simplement pas.
Deuxièmement, j'ai essayé une autre approche et a ajouté la ligne suivante dans mon fichier .pro:
QMAKE_CXXFLAGS += -static
Cela ne résout pas le problème non plus. J'ai analysé la sortie du compilateur et découvert:
-static est ajouté uniquement lors de la compilation de sources pour objets fichiers. Mais lors de la construction de l'exécutable, ce drapeau est absent.
Voici le compilateur exact des commandes que je copiais de l'onglet de sortie du compilateur:
g++ -c -pipe -fno-keep-inline-dllexport -static -g -std=gnu++11 -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -I..\..\..\ASSETS\PROG_CPP\MY_CPP\2016\test -I. -I..\..\..\icu\dist\include -I..\..\5.7\mingw53_32\mkspecs\win32-g++ -o debug\main.o ..\..\..\ASSETS\PROG_CPP\MY_CPP\2016\test\main.cpp
g++ -Wl,-subsystem,console -mthreads -o debug\test.exe debug/main.o -LC:\icu\dist\lib -lsicuio -lsicuin -lsiculx -lsicule -lsicuuc C:\icu\dist\lib\sicudt.a -lpthread -lm
Comment forcer Qmake ajouter -static à toutes les commandes?
Il n'est pas utile dans mon cas, mais ceci: 'unix: LIBS + = -Wl, -Bstatic -l - Wl, -Bdynamic' est ok –
dyomas
Sur Windows je reçois l'option non reconnue/statique – jjxtra