Я хочу построить boost и другие пакеты в buildroot с -std = C++ 11? Можно ли передавать его по всему миру, вместо этого, исправляя файлы программы .mk?Возможно передать C++ 11 param в конфигурацию Buildroot?
ответ
Существует нет простого способа передать его по всему миру и по уважительной причине: некоторые пакеты могут не строить с 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 ++. Это не имеет недостатков двух других, но больше усилий для реализации.