Как включить (lockfree boost::atomic_flag : no (cache)) на Solaris-10 при сборке Boost

На самом деле я новичок в библиотеке Boost и в настоящее время пытаюсь создать библиотеку Boost на платформе Solaris-10. Для создания Boost я использую следующую команду:

./bootstrap.sh --with-toolset=солнце --with-libraries=atomic,thread,regex

./b2 вариант=адрес выпуска-модель=64 время выполнения-ссылка=общий cxxflags="-std=c++11 -m64 -xarch=sparc -mt" linkflags="-std=c++11 -m64 -xarch= sparc -mt" threading=multitoolset=солнечная сцена

Единственная проблема, которую я вижу при создании библиотеки повышения, заключается в следующем:

  • lockfree boost::atomic_flag : нет (кешируется)

Функция блокировки не включается. Может ли кто-нибудь помочь мне понять, что мне не хватает и что мне нужно добавить в командную строку, чтобы включить функцию lookfree?

Версия библиотеки Boost — компилятор 1.61 — компилятор SolarisStudio-12.4 CC Архитектура ОС = 64-битная

В RedHatLinux-6 boost отлично строится с компилятором g++ без каких-либо дополнительных флагов, установленных через командную строку, также он говорит lockfree boost::atomic_flag : "**yes(cached )"**


person ShivaPrasad Gadapa    schedule 02.08.2016    source источник
comment
Я устал устанавливать значение переменной (BOOST_ATOMIC_FLAG_LOCK_FREE = 1) в значение true, передав его в качестве аргумента в исполняемый файл ./b2 под cxxflags=BOOST_ATOMIC_FLAG_LOCK_FREE = 1, теперь, когда я попытка собрать его включается, т.е. lockfree boost::atomic_flag : да, но когда я запускаю тестовую программу, она все еще говорит, что программа НЕ БЛОКИРОВКА БЕСПЛАТНА   -  person ShivaPrasad Gadapa    schedule 03.08.2016
comment
Хм, делать это не работает для меня.   -  person Max Palmer    schedule 22.02.2019


Ответы (1)


Вам просто нужно установить компилятор C++11 на всех машинах UNIX, так как библиотека Boost в основном использует вызовы API библиотеки C++11.

person ShivaPrasad Gadapa    schedule 12.10.2016