可以将C ++ 11 param传递给Buildroot配置吗?

时间:2016-08-23 13:54:18

标签: c++ c++11 buildroot build-system

我想使用-std = c ++ 11在buildroot中构建boost和其他包吗? 是否可以通过修补程序.mk文件来全局传递?

1 个答案:

答案 0 :(得分:1)

没有简单的方法可以全局传递它,并且有充分的理由:某些软件包可能无法使用C ++ 11构建,例如:因为他们使用新的保留字。

但是,如果你真的想冒风险,你有三个选择:

  • -std=c++11添加到BR2_TARGET_OPTIMIZATION(在工具链菜单中)。这将包含在工具链包装器中,因此可用于每个编译。请注意,对于C程序,这将为您提供“命令行选项'-std = c ++ 11'对C ++ / ObjC ++有效,但对C”警告无效。因此,对于-Werror的包将破坏。

  • 修改package / Makefile.in并将-std=c++11添加到TARGET_CXXFLAGS。在这种情况下,它只传递给C ++编译。但是,TARGET_CXXFLAGS只是传递给包构建系统,并非所有构建系统都尊重它。

  • 修改toolchain/toolchain-wrapper.c以在调用g ++时添加此选项。这没有其他两个的缺点,但需要做更多的工作。