Обновление gcc-4.9 повредило лязг ++

Недавно я обновил до gcc-4.9, но он полностью повредил мой лязг ++, и я не могу скомпилировать что-либо. Ошибка я добираюсь:

In file included from src/tester.cpp:11:
In file included from /usr/include/boost/progress.hpp:22:
In file included from /usr/include/boost/timer.hpp:20:
In file included from /usr/include/boost/config.hpp:40:
In file included from /usr/include/boost/config/select_stdlib_config.hpp:18:
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/cstddef:51:11: error: no member named 'max_align_t' in the global namespace
  using ::max_align_t;

Вывод лязга ++-v:

Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4)
Target: x86_64-pc-linux-gnu
Thread model: posix
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/bin/../lib/gcc/i686-linux-gnu/4.9.1
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.8.2
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9.1
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/i686-linux-gnu/4.9.1
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.8.2
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9
Found candidate GCC installation: /usr/lib/gcc/x86_64-linux-gnu/4.9.1
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9

Я попытался удалить gcc и лязг и установить его снова, но он не помог. У Вас есть какие-либо предложения, как зафиксировать его?

3
задан 13 September 2014 в 21:04

2 ответа

$ grep max_align_t /usr/include/c++/* -r
/usr/include/c++/4.9/cstddef: using ::max_align_t; /usr/include/c++/4.9.2/cstddef: using ::max_align_t; /usr/include/c++/v1/cstddef: max_align_t /usr/include/c++/v1/cstddef:typedef long double max_align_t;

/usr/include/c ++/v1/является файлами от libc ++-dev, таким образом, мы должны лязгать для использования libc ++

, Простой переключатель компилятора сортирует это

Поэтому, если Вы добираетесь, эта ошибка добавляют, что это Вам лязгает командной строкой:-stdlib=libc ++

2
ответ дан 18 November 2019 в 05:00

Была давнишняя ошибка несовместимости ABI между лязгом и gcc в течение многих месяцев теперь. Проблема сделала лязг не могущим связаться с существующими системными библиотеками.

хорошие новости (с 27.07.2016): это было зафиксировано в Гостеприимном (16.04.1 LTS)

Для заинтересованного деталями, восходящие ошибки:

0
ответ дан 18 November 2019 в 05:00

Другие вопросы по тегам:

Похожие вопросы: