Sun C ++ Компиляторы и Boost - PullRequest
2 голосов
/ 30 ноября 2009

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

Я всегда мог скомпилировать, используя GCC.

Ответы [ 3 ]

3 голосов
/ 30 ноября 2009

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

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

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

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

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

Блог Sun C ++ Frontend tails

2 голосов
/ 30 ноября 2009

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

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

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

1 голос
/ 09 декабря 2009

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

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

...