2010-03-05 12 views

Répondre

1

Le stdC++ que vous liez statiquement et le stdC++ que les bibliothèques liées dynamiquement utilisent quand votre programme est exécuté peuvent être incompatibles. Si vous liez dynamiquement, le stdC++ utilisé dans les deux cas sera le même.

La liaison directe à libstdC++ .a est liée de manière statique à celle-ci. Vous devez juste être conscient des mises en garde dues à l'incompatibilité de version mentionnée dans l'article.

1

Il ne dit pas que lier statiquement à libstdC++ ne fonctionnera pas. Il est dit que si vous voulez lier statiquement la bibliothèque libstdC++, vous devez aussi lier tous les de votre code C++.

+0

Je veux dire par là: "Notez que ce problème ne peut généralement pas être résolu par une liaison statique.Tout d'abord, le code compilé avec différents ABI n'est simplement pas compatible binaire. Deuxièmement, le support de l'exécution de la langue repose généralement sur le partage de certaines données, par exemple pour accéder à une sorte de verrou ou à une structure de données globale (similaire à la façon dont les programmes C ont besoin d'un errno partagé). – solotim