Вопрос

В настоящее время я занимаюсь разработкой OpenSolaris 2009-06. Документация Boost :: MPL предполагает, что солнечные компиляторы являются не поддерживается (последний раз документ обновлялся в 2004 году). Документация верхнего уровня Boost, кажется, предполагает, что поддерживаются компиляторы Sun версии 5.10 и выше - я думаю, что это общий уровень поддержки или он включает MPL? У кого-нибудь есть какие-либо подробности о состоянии соответствия C ++ компиляторов sun 5.10?

Я всегда мог скомпилировать с помощью GCC.

Это было полезно?

Решение 3

Я полагаю, поскольку точный ответ не был предоставлен, я должен опубликовать его самостоятельно.

opensolaris (2009.06) и boost-1.4.1, похоже, работают хорошо. ./ bjam выбирает правильные переключатели, а boost :: mpl , кажется, хорошо работает с присутствующим компилятором sun. Итак, насколько я могу судить, документация mpl по поддержке компилятора довольно устарела.

Другие советы

У меня был некоторый успех с компилятором Boost и Sun CC на Solaris 10, но это неприятно. Главное помнить, что вам нужно,

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

в вас CXXFLAGS для всего, что вы компилируете, все библиотеки только на основе шаблонов, которые я пробовал, похоже, прекрасно с этим работают (пропустите все библиотеки, которые нужно компилировать, подробности см. здесь )

Это, конечно, означает, что вам придется перестраивать любые библиотеки, на которые вы хотите сослаться (вам очень повезет, если они уже использовали stlport4).

К сожалению, это единственная (ненадежно) веская причина не использовать Boost :-(

Блог Sun C ++ Frontend tails

В прошлом я сам справлялся с этой проблемой, и это боль в тылу.

Чтобы быть более точным в ответе Криса Хуанга-Ливера, вам действительно нужно использовать STLPort4 на компиляторах Sun. STL по умолчанию, поставляемый Sun, является неполным, согласно их собственной документации (я буду отслеживать его в какой-то момент). Другие варианты, которые упоминает Крис, полезны, но на самом деле они не являются корнем проблемы.

Хорошая новость заключается в том, что Sun также поставляет STLPort версии 4 со своими компиляторами, поэтому все, что вам нужно, это включить " -library = stlport4 " флаг, чтобы переключиться на него. Почему они поставляют две версии (одна полуразбитую) STL, а не только одну правильную версию, мне неизвестно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top