g++ compiler options -g et debug -O optimisation

Je ne suis pas assez familier avec g++ compilateurs, en particulier les options, comme par exemple, -s, -v et -O.

Tout d'abord, puis-je demander quand ces options prennent effet? Lors de la compilation ou de la phase de liaison? J'ai l'habitude de mettre toutes les options dont j'ai besoin dans les deux phases.

Deuxièmement, y a -g1, -g2-g3 options? Je sais -g ajoute les informations de débogage dans le fichier exécutable. Comment font les autres diffèrent-ils?

Troisièmement, ce que ne -s? Ne -s, -v et -O3 travailler ensemble? Mon objectif est de rendre le fichier exécutable 1) courir vite, et 2) de petite taille si possible. Que proposez-vous?

puis-je demander toutes les options dans la compilation de phase ou phase de liaison ou les deux phases? Puis-je inclure les informations de débogage -g lors de la phase de compilation, puis d'appliquer l'-O3 et -s dans la phase d'édition de liens? Je ne sais pas si c'...
en fait, je suis en train d'écrire un Makefile. Je me demande si je peux inclure les informations de débogage dans la compilation pour la création de fichiers de l'objet, puis de créer deux exécutables de versions différentes à l'aide des fichiers de l'objet. Est-il possible? merci.
Je pense que vous êtes d'étendre un peu cette question. Oui, vous pouvez le compiler à l'aide de "-ggdb -g3 -O3-c" et puis si vous voulez le lien pour "libération", vous utilisez "-O3-s" et si vous voulez le lien pour déboguer vous utilisez "-O3-ggdb -g3 -O3". Mais pourquoi voudriez-vous une telle chose? Les sauvés de l'espace disque (et le temps) n'est pas beaucoup, et si vous utilisez de l'O3 et le débogage n'est pas très claire. Vous devriez peut-être poster une autre question en expliquant le mieux à votre cas d'utilisation...

OriginalL'auteur jason.Z | 2012-09-12