Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Créer un exécutable _statique_ avec Visual C++ 2010

6 réponses
Avatar
JKB
Bonjour à tous,

J'essaie de compiler un exécutable statique à fins de tests sur un
2008R2 sur lequel je ne peux pas installer toute une ribambelle de
bibliothèques. Le programme est une application Qt qui fonctionne
parfaitement avec des bibliothèques partagées. Elle se compile avec
un qMakefile.pro et je cherche depuis ce matin comment faire pour
lier statiquement la chose (y compris les bibliothèques C/C++). Je
n'ai strictement rien trouvé dans la doc.

Une idée ?

Cordialement,

JKB

--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr

6 réponses

Avatar
Serge Paccalin
Le Wed, 16 Feb 2011 10:35:49 +0000 (UTC), JKB a écrit
(dans <news:, posté
dans fr.comp.lang.c++) :

J'essaie de compiler un exécutable statique à fins de tests sur un
2008R2 sur lequel je ne peux pas installer toute une ribambelle de
bibliothèques. Le programme est une application Qt qui fonctionne
parfaitement avec des bibliothèques partagées. Elle se compile avec
un qMakefile.pro et je cherche depuis ce matin comment faire pour
lier statiquement la chose (y compris les bibliothèques C/C++). Je
n'ai strictement rien trouvé dans la doc.

Une idée ?



Pour les DLL de Qt, c'est à l'installation de Qt que l'on décide de
faire du Qt en DLL ou en statique.

Par exemple :

configure -static -platform win32-msvc2010 […]

Tape :

configure -help
pour en savoir plus.

--
___________
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763
Avatar
JKB
Le Wed, 16 Feb 2011 12:12:23 +0100,
Serge Paccalin écrivait :
Le Wed, 16 Feb 2011 10:35:49 +0000 (UTC), JKB a écrit
(dans <news:, posté
dans fr.comp.lang.c++) :

J'essaie de compiler un exécutable statique à fins de tests sur un
2008R2 sur lequel je ne peux pas installer toute une ribambelle de
bibliothèques. Le programme est une application Qt qui fonctionne
parfaitement avec des bibliothèques partagées. Elle se compile avec
un qMakefile.pro et je cherche depuis ce matin comment faire pour
lier statiquement la chose (y compris les bibliothèques C/C++). Je
n'ai strictement rien trouvé dans la doc.

Une idée ?



Pour les DLL de Qt, c'est à l'installation de Qt que l'on décide de
faire du Qt en DLL ou en statique.

Par exemple :

configure -static -platform win32-msvc2010 […]

Tape :

configure -help
pour en savoir plus.



Qt est compilé en statique et en dynamique. Le problème est
l'édition des liens qui n'arrive pas à faire une édition totalement
statique.

JKB

--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
Avatar
Serge Paccalin
Le Wed, 16 Feb 2011 12:13:04 +0000 (UTC), JKB a écrit
(dans <news:, posté
dans fr.comp.lang.c++) :

Pour les DLL de Qt, c'est à l'installation de Qt que l'on décide de
faire du Qt en DLL ou en statique.

Par exemple :

configure -static -platform win32-msvc2010 […]

Tape :

configure -help
pour en savoir plus.



Qt est compilé en statique et en dynamique. Le problème est
l'édition des liens qui n'arrive pas à faire une édition totalement
statique.



Il faut deux installations successives de Qt dans deux répertoires
différents pour que ça marche. Et ensuite, spécifier le bon pour
l'édition des liens (avec QTDIR, je pense) ; ne pas oublier que les
variables d'environnement sont créées au lancement d'un process et
héritées du process parent.

--
___________
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763
Avatar
Jean-Marc Bourguet
JKB writes:

Bonjour à tous,

J'essaie de compiler un exécutable statique à fins de tests su r un
2008R2 sur lequel je ne peux pas installer toute une ribambelle de
bibliothèques. Le programme est une application Qt qui fonctionne
parfaitement avec des bibliothèques partagées. Elle se compile avec
un qMakefile.pro et je cherche depuis ce matin comment faire pour
lier statiquement la chose (y compris les bibliothèques C/C++). Je
n'ai strictement rien trouvé dans la doc.

Une idée ?



De memoire -- et de la part de quelqu'un qui n'a jamais fait du
developpement serieusement sous Windows, c'est simplement ce que j'ai
retenu de diverses interventions mentionnant Windows -- les points
d'acces de Windows sont des DLL. Si j'ai raison, un executable
complement dynamique ce n'est purement et simplement pas possible (c'est
-- ou ce sera le cas, on a eu un avertissement de Sun a ce sujet, mais
comme nous ne sommes pas concernes j'ai oublie les details -- aussi sous
Solaris ou libc.a n'est -- ne sera -- plus disponible).

Toujours d'apres ce que j'ai lu, il me semble de lier les lib C et C++
en statique sous Windows, certains ayant des problemes a cause de cela
avec des DLL qui le font (ils se retrouvent avec deux lib C et faire un
free/delete de qqch dont le malloc/new a ete fait avec une autre lib C
est problematique).

A+

--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index. html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Avatar
JKB
Le Wed, 16 Feb 2011 13:33:31 +0100,
Jean-Marc Bourguet écrivait :
JKB writes:

Bonjour à tous,

J'essaie de compiler un exécutable statique à fins de tests sur un
2008R2 sur lequel je ne peux pas installer toute une ribambelle de
bibliothèques. Le programme est une application Qt qui fonctionne
parfaitement avec des bibliothèques partagées. Elle se compile avec
un qMakefile.pro et je cherche depuis ce matin comment faire pour
lier statiquement la chose (y compris les bibliothèques C/C++). Je
n'ai strictement rien trouvé dans la doc.

Une idée ?



De memoire -- et de la part de quelqu'un qui n'a jamais fait du
developpement serieusement sous Windows, c'est simplement ce que j'ai
retenu de diverses interventions mentionnant Windows -- les points
d'acces de Windows sont des DLL. Si j'ai raison, un executable
complement dynamique ce n'est purement et simplement pas possible (c'est
-- ou ce sera le cas, on a eu un avertissement de Sun a ce sujet, mais
comme nous ne sommes pas concernes j'ai oublie les details -- aussi sous
Solaris ou libc.a n'est -- ne sera -- plus disponible).

Toujours d'apres ce que j'ai lu, il me semble de lier les lib C et C++
en statique sous Windows, certains ayant des problemes a cause de cela
avec des DLL qui le font (ils se retrouvent avec deux lib C et faire un
free/delete de qqch dont le malloc/new a ete fait avec une autre lib C
est problematique).



C'est bien ce que je craignais... Pourtant, pour faire un test à
l'arrache, c'est assez pratique...

Cordialement,

JKB

--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
Avatar
Jean-Marc Bourguet
JKB writes:

Le Wed, 16 Feb 2011 13:33:31 +0100,
Jean-Marc Bourguet écrivait :
Toujours d'apres ce que j'ai lu, il me semble de lier les lib C et C++




Il manque "possible" ^ici
en statique sous Windows, certains ayant des problemes a cause de cela
avec des DLL qui le font (ils se retrouvent avec deux lib C et faire un
free/delete de qqch dont le malloc/new a ete fait avec une autre lib C
est problematique).



C'est bien ce que je craignais... Pourtant, pour faire un test à
l'arrache, c'est assez pratique...



Les problemes dont j'ai connaissance n'ont lieu que quand il y a des DLL
en jeu (aucune idee si les DLL systemes sont capables de les causer).
Tout statique sauf les DLL systemes me semble possible (et les lib C et
C++ ne devrait pas faire partie des DLL systemes). Maintenant, est-ce
que ca vaut la peine de chercher a le faire si c'est complique, ca tu
vois tout seul.

A+


--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index. html
Site de usenet-fr: http://www.usenet-fr.news.eu.org