/ORDER (Mettre les fonctions dans l'ordre)
/ORDER:@filename
Paramètres
- filename
désigne un fichier texte spécifiant l'ordre de liaison des fonctions COMDAT.
Notes
L'option /ORDER indique à LINK d'optimiser votre programme en insérant certains COMDAT dans l'image dans un ordre prédéterminé.LINK place les fonctions dans l'ordre spécifié dans chaque section de l'image.
Spécifiez l'ordre dans l'argument filename, qui est un fichier texte (fichier réponse) répertoriant les COMDAT dans l'ordre de liaison souhaité.Chaque ligne de l'argument filename contient le nom d'un COMDAT.Un objet contient des COMDAT s'il a été compilé avec l'option /Gy.Les noms de fonctions respectent la casse.
LINK utilise les formes décorées des identificateurs.Le compilateur décore un identificateur lorsqu'il crée le fichier .obj.Utilisez l'outil DUMPBIN pour obtenir la forme décorée d'un identificateur lorsque vous devez le spécifier à l'éditeur de liens.Pour plus d'informations sur les noms décorés, consultez Noms décorés.
Si plusieurs spécifications /ORDER sont utilisées, la dernière spécifiée est appliquée.
Le classement vous permet d'optimiser le comportement d'échange de votre programme par le biais du réglage de l'échange en regroupant une fonction avec la fonction appelée.Vous pouvez également regrouper les fonctions appelées fréquemment.Ces techniques augmentent la probabilité selon laquelle une fonction appelée est en mémoire si nécessaire et n'aura pas besoin d'être échangée à partir du disque.
L'éditeur de liens ajoutera un trait de soulignement (_) à chaque nom décoré dans l'argument filename, sauf si le nom commence par un point d'interrogation (?) ou un signe (@).Par exemple, si un fichier objet contient extern "C" int func(int) et int main(void), DUMPBIN /SYMBOLS va répertorier ces noms décorés :
009 00000000 SECT3 notype () External | _func
00A 00000008 SECT3 notype () External | _main
Toutefois, le nom spécifié dans le fichier d'ordres doit être func et main.
L'option /ORDER désactive les liens incrémentiels.
[!REMARQUE]
LINK ne peut pas classer les fonctions statiques car les noms de fonctions statiques ne sont pas des noms de symboles publics.Lorsque /ORDER est spécifié, l'avertissement de l'éditeur de liens LNK4037 est généré pour chaque symbole, dans le fichier d'ordres, qui est soit statique, soit introuvable.
Pour définir cette option de l'éditeur de liens dans l'environnement de développement Visual Studio
Ouvrez la boîte de dialogue Pages de propriété du projet.Pour plus d'informations, consultez Définition des propriétés de projets Visual C++.
Cliquez sur le dossier Éditeur de liens.
Cliquez sur la page de propriétés Optimisation.
Modifiez la propriété Ordre des fonctions.
Pour définir cette option de l'éditeur de liens par programme
- Consultez FunctionOrder.