Можно ли передать параметр C ++ 11 в конфигурацию Buildroot?

Я хочу собрать boost и другие пакеты в buildroot с -std = c ++ 11?
Можно ли передать его глобально, вместо этого путем исправления программных файлов .mk?

0

Решение

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

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

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

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

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

1

Другие решения

Других решений пока нет …