Question

Je développe actuellement sur OpenSolaris 2009-06. La documentation Boost :: MPL semble suggérer que les compilateurs sun sont non pris en charge (la dernière mise à jour du document a eu lieu en 2004). La documentation de niveau supérieur de Boost semble suggérer que les compilateurs sun 5.10 et versions ultérieures sont pris en charge - je suppose qu'il s'agit d'un niveau de support général ou comprend-il le format MPL?. Quelqu'un at-il des détails sur l'état de la conformité C ++ des compilateurs sun 5.10?

Je pouvais toujours compiler avec GCC.

Était-ce utile?

La solution 3

Je suppose qu’une réponse exacte n’a pas été fournie, je dois en poster une moi-même.

opensolaris (2009.06) et boost-1.4.1 semblent bien fonctionner. Le ./ bjam choisit les bons commutateurs et boost :: mpl semble bien fonctionner avec le compilateur sun présent. Donc, autant que je sache, la documentation mpl sur le support du compilateur est plutôt dépassée.

Autres conseils

J'ai eu un certain succès avec Boost et le compilateur CC de Sun sous Solaris 10, mais c'est pénible. La principale chose à retenir est que vous avez besoin,

 -library=stlport4 -features=tmplife -features=tmplrefstatic

dans votre CXXFLAGS pour tout ce que vous compilez, toutes les bibliothèques de modèles que j'ai essayées semblent bien fonctionner avec cela (sautez toutes les bibliothèques qui ont besoin d'être compilées, voir ici pour plus de détails )

Cela signifie bien sûr que vous devrez reconstruire toutes les bibliothèques auxquelles vous devez vous connecter (vous seriez très chanceux s’ils utilisaient déjà stlport4).

Malheureusement, c’est à peu près la seule raison valable (ténue) de ne pas utiliser Boost :-(

blog sur le contenu des clichés Sun C ++ Frontend

J'ai moi-même combattu ce problème par le passé et c'est une douleur à l'arrière.

Pour être un peu plus précis sur la réponse de Chris Huang-Leaver, vous devez vraiment utiliser STLPort4 sur les compilateurs Sun. La STL fournie par défaut par Sun est incomplète, selon leur propre documentation (je la localiserai à un moment donné). Les autres options mentionnées par Chris sont utiles, mais elles ne sont pas vraiment la cause du problème.

La bonne nouvelle est que Sun a également fourni la version 4 de STLPort avec leurs compilateurs. Par conséquent, il vous suffit d'inclure le paramètre "-library = stlport4". drapeau afin de passer à elle. Pourquoi ils fournissent deux versions (une semi-cassée) de la STL, plutôt qu'une seule version correcte , me dépasse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top