prévenir la gcc à partir de la suppression d'une variable inutilisée

Dans nos fichiers source, nous avons habituellement une chaîne de version comme ça:

static const char srcvers[] = "VERSION/foo.c/1.01/09.04.15";

Lorsque la chaîne n'est pas optimisé, il est très utile dans certains cas, comme on peut déterminer la version de chaque fichier source lié à un fichier exécutable en appelant simplement strings a.out | grep VERSION.

Malheureusement, il est optimisé à l'écart par gcc (en utilisant l'option '-O'). Donc ma question est, est-il un moyen simple (un commutateur de compilateur serait génial) pour faire de la gcc garder cette variable (son nom est toujours le même) sans éteindre toutes les autres optimisations.

Modifier

Ce qui, à mon avis, la question est-elle différente de que l'on, c'est que je suis a été l'espoir de trouver une solution pour que je ne touchez pas à des milliers de fichiers source.

Qu'en est ajouter -v option sur tous vos binaires affichage de ce var ?
Peut-être essayer de tromper gcc en pensant que la variable est utilisée (quelque chose comme strlen(srcvers);)?
Essayé de faire volatile? Cela devrait fonctionner: volatile static const char srcvers[] = "VERSION/foo.c/1.01/09.04.15";
voulez-vous dire a.out -v? qui travaillent pour un fichier source seulement, et nous le faisons déjà. Je voudrais obtenir des informations sur tous les fichiers liés ensemble
double possible de Comment prévenir l'optimisation du compilateur sur un petit morceau de code?

OriginalL'auteur Ingo Leonhardt | 2015-04-09