Je développe des exécutables d'interface de ligne de commande pour osx et linux à l'aide de c/c ++. Le projet se liera contre l'opencv. Devrais-je utiliser libc ++ ou libstdc ++?
J'utiliserais la bibliothèque native pour chaque système d'exploitation, à savoir libstdc ++ sous GNU/Linux et libc ++ sous Mac OS X.
libc ++ n'est pas complet à 100% sous GNU/Linux, et son utilisation ne présente aucun avantage réel lorsque libstdc ++ est plus complet. En outre, si vous souhaitez créer un lien vers d'autres bibliothèques écrites en C++, elles auront certainement été créées avec libstdc ++. Vous devrez donc créer un lien avec celle-ci pour pouvoir les utiliser.
Plus d'infos ici sur la complétude de libc ++ sur différentes plateformes.
Les principales distributions Linux ne fournissent pas LLVM libc ++, car:
Si finalement libc ++ faisait partie des distributions, ce serait un composant facultatif. lier contre cela nécessitera probablement des options supplémentaires.
Comme Jonathan l'a dit, vous devriez utiliser n'importe quel outil inclus par défaut. Clang est sûr à utiliser sous Linux car il est configuré en remplacement de GCC, vous n'avez donc pas à vous soucier de deux compilateurs. De plus, puisque vous ciblez deux plates-formes, vous devriez jeter un oeil à cmake.