Optimisation et des drapeaux pour faire une bibliothèque statique avec g++

Je commence tout juste avec le compilateur g++ sous Linux et ai quelques questions sur les drapeaux du compilateur. Ici sont-ils

Optimisations

J'ai lu sur l'optimisation des drapeaux -O1, -O2 et -O3 dans le g++ page de manuel. J'ai pas compris quand utiliser ces indicateurs. Habituellement ce niveau d'optimisation utilisez-vous? Le g++ manuel dit ce qui suit pour -O2.

Optimiser encore plus. CCG effectue presque toutes les prises en charge des optimisations qui ne nécessitent pas d'espace-vitesse. Le compilateur n'effectue pas de déroulement de la boucle ou de la fonction inline lorsque vous spécifiez -O2. Par rapport à O, cette option augmente à la fois le temps de compilation et les performances du code généré.

Si ce n'est pas l'in-lining et le déroulement de la boucle, comment le dit il sied de performance sont atteints et que cette option est recommandée?

Bibliothèque Statique

Comment puis-je créer une bibliothèque statique à l'aide de g++? Dans Visual Studio, je peux choisir un projet de bibliothèque de classes et il sera compilé dans "lib" du fichier. Quel est l'équivalent en g++?