Comment Réduire La Taille D'un Exe

Table des matières:

Comment Réduire La Taille D'un Exe
Comment Réduire La Taille D'un Exe

Vidéo: Comment Réduire La Taille D'un Exe

Vidéo: Comment Réduire La Taille D'un Exe
Vidéo: Reduire la taille d'un fichier a l'aide de wirar (compresser une fichier) 2024, Peut
Anonim

La petite quantité de RAM et les périphériques de stockage à long terme sur les ordinateurs personnels imposaient dans le passé des restrictions très strictes sur la taille des programmes. Ce problème n'existe pas aujourd'hui. Cependant, même maintenant, il est parfois important de minimiser autant que possible la taille du module exe de l'application développée.

Comment réduire la taille d'un exe
Comment réduire la taille d'un exe

Nécessaire

  • - la source;
  • - compilateur, éditeur de liens;
  • - compresseurs de modules PE, tels que UPX, Themida.

Instructions

Étape 1

Générez la version finale de l'exécutable de l'application. Sélectionnez la configuration appropriée dans les paramètres du projet dans l'IDE. S'il n'y a pas une telle configuration, créez-la sur la base de celle existante. Modifiez la liste des options de l'éditeur de liens en supprimant et en ajoutant les directives appropriées. Ainsi, lorsque vous utilisez un package de développement de Microsoft, vous devez supprimer l'option / debug. Vous pouvez également ajouter la directive suivante au code source: #pragma comment (linker, "/ RELEASE")

Étape 2

Configurez le projet pour éviter autant que possible de lier l'exécutable à des bibliothèques statiques. Utilisez des versions partagées des bibliothèques respectives. Par exemple, vous pouvez exclure le code des bibliothèques d'exécution C et C++ en remplaçant l'option de l'éditeur de liens /ML ou /MT (bibliothèques statiques mono et multithread) par /MD (DLL CRT multithread).

Étape 3

Envisagez de fusionner différentes sections du module exe en une seule. Cette méthode ne donnera pas de résultat notable si le fichier est suffisamment volumineux, mais avec la taille initiale du module de 20 à 30 kilo-octets, le gain peut être important. L'option / merge linker vous permet de fusionner des sections. Vous pouvez le définir via les paramètres du projet: /merge:.text =.data /merge:.reloc=.data /merge:.rdata=.data ou en utilisant les directives pragma dans le code source: #pragma comment (linker, "/ merge:.text =.data ") # pragma comment (linker," /merge:.reloc=.data")#pragma comment (linker, "/merge:.rdata=.data")#pragma comment (linker," / merge:.idata =.data") Il est également judicieux de définir les attributs de la section résultante: #pragma comment (linker," /section:.data, rwe ")

Étape 4

Réduisez la taille de l'exe en définissant la valeur minimale de la taille des blocs le long des limites desquels les sections sont alignées. Utilisez l'option de l'éditeur de liens / filealign spécifiée en éditant les propriétés du projet ou la directive pragma: #pragma comment (linker, "/ filealign: 0x200") Cette méthode convient aux petits modules.

Étape 5

Essayez de réduire la taille du fichier exe en le construisant avec des options d'optimisation pour réduire la quantité de code machine. Remplacez les options du compilateur / O2 ou / Od par / O1.

Étape 6

Remplacez le stub DOS standard du module exe par le vôtre, qui aura la taille minimale. Utilisez l'option / stub linker: #pragma comment (linker, "/stub:mystub.exe")Ici mystub.exe est le nom du fichier exécutable DOS qui sera ajouté au module exe en tant que stub.

Étape 7

Pensez à spécifier votre propre point d'entrée dans l'application. Cela éliminera le code d'initialisation des bibliothèques d'exécution statiques. Utilisez l'option / entry linker, par exemple: #pragma comment (linker, "/ entry: MyStartup") void MyStartup () {:: MessageBox (NULL, "Hello!", "Message!", MB_OK);}

Étape 8

Appliquez des utilitaires d'empaquetage comme UPX, ASPack, Themida, PECompact au fichier exe fini. Les données du module seront compressées. Ils seront décompressés en mémoire après le lancement de l'application. Cette méthode donne de bons résultats pour les gros fichiers exe contenant une grande quantité de données statiques avec une faible entropie (par exemple, les rasters DIB dans la section des ressources).

Conseillé: