[VC7] Modifier la ligne de commande de link à la main

Résolu
Maegis Messages postés 101 Date d'inscription vendredi 15 février 2002 Statut Membre Dernière intervention 6 août 2007 - 12 févr. 2007 à 15:32
Maegis Messages postés 101 Date d'inscription vendredi 15 février 2002 Statut Membre Dernière intervention 6 août 2007 - 13 févr. 2007 à 18:31
Bonjour, il se trouve que je suis actuellement sur un projet sous VisualC++ 7.
Tout va bien et tout se compile, cependant lors de l'édition de lien il me rajoute 50 libs inutiles qui bouffent de la place.
Le problème c'est que je n'arrive pas à lui dire de les enlever! je ne peux pas éditer la ligne de commade à la main :(

Voici ce qu'il me donne :
<hr size="2" width="100%" />/OUT:"Release/Unblock Printer.exe" /INCREMENTAL:NO /NOLOGO /SUBSYSTEM:WINDOWS /OPT:REF /OPT:ICF /LTCG /MACHINE:X86   kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib
<hr size="2" width="100%" />

J'ai essayé de modifer toutes les options de l'editeur de liens (dans les propriétés du projet->Editeur de liens->Entrée), en particulier celle ci : "Toutes les bibliothéques par défaut ignorées". En la mettant à oui il me rajouterjuste un /NODEFAUTLIB au début de la ligne de commande mais il garde toutes les libs à la fin.
J'ai aussi essayé de mettre dans "Bibliothèque spécifique ignorées" le noms des libs que je ne veux pas, et à ce moment la il rajoute /NODEFAUTLIB:ole32.lib,[....].lib mais garde aussi toutes les libs en bas de la ligne.

Quoi qu'il en soit en modifiant ces options je reçois une erreur au link :
<hr size="2" width="100%" />'Erreur de la ligne de commande : commande non reconnue /lib'
<hr size="2" width="100%" />

J'ai essayé d'ouvrir les fichiers .vcproj avec notepad, mais malheureusement je n'ai pas trouvé le ligne de commande du link qui doit être générée automatiquement d'après les options. Cependant j'ai trouvé cette ligne dans les options de ma Release :
<hr size="2" width="100%" />AdditionalOptions="/lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib"
<hr size="2" width="100%" />
Il y apparait le /lib dont je parle au dessus avec une partie des libs qu'il link et si par malheur j'essaye de modifier cette ligne en enlevant certaines libs, je retombe sur l'erreur :
<hr size="2" width="100%" />'Erreur de la ligne de commande : commande non reconnue /lib'
<hr size="2" width="100%" />
Je n'ai trouvé de solution nulle-part même pas dans l'aide et google n'est plus mon ami pour cette question
Il doit y avoir un moyen ! Parce que bon mon exe qui fait 56ko en release avec le moitié du code linké inutile ça me fait mal

Merci d'avance de combler mes lacunes dans la connaissance de cette version de Vc++

2 réponses

Maegis Messages postés 101 Date d'inscription vendredi 15 février 2002 Statut Membre Dernière intervention 6 août 2007
13 févr. 2007 à 18:31
Honte sur moi !
Merci pour le tuyau sur le CRT, ça passe à 8k50 ça me va :)
Mais j'en conclut qu'on ne peut pas éditer la ligne de commande de link à la main dans le projet, à moins de faire son makefile, dommage.
Ca fait un moment que je n'avais plus codé et j'étais habitué à VC6 qui le permettait, c'était bien pratique, mais bon j'ai du retard à rattraper
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
12 févr. 2007 à 22:15
lib mises au linker n'influent en rien, le linker ne met dans l'exe que ce qui est appelé de la lib, si rien alors rien dans l'exe.
La taille exe vient du CRT employé, si tu veux petit alors tu te passes du CRT, voir mes sources où les dernières de vecchio56.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous