2016-08-23 14 views

ответ

1

Существует нет простого способа передать его по всему миру и по уважительной причине: некоторые пакеты могут не строить с C++ 11, например. потому что они используют новые зарезервированные слова.

Если вы действительно хотите рисковать, однако, у вас есть три варианта:

  • Добавить -std=c++11 в BR2_TARGET_OPTIMIZATION (в меню ToolChain). Это будет включено в оболочку инструментальной цепочки и, следовательно, будет использоваться для каждой компиляции. Обратите внимание, что для программ на C это даст вам «параметр командной строки» -std = C++ 11, действителен для предупреждений C++/ObjC++, но не для C ». Таким образом пакеты, которые на -Werror будут ломаться.

  • Изменить пакет/Makefile.in и добавить -std=c++11 в TARGET_CXXFLAGS. В этом случае он передается только компиляторам C++. Тем не менее, TARGET_CXXFLAGS только что передан системе сборки пакетов, и не все системы сборки почитают ее.

  • Изменить toolchain/toolchain-wrapper.c, чтобы добавить эту опцию при вызове g ++. Это не имеет недостатков двух других, но больше усилий для реализации.