我想使用-std = c ++ 11在buildroot中构建boost和其他包吗? 是否可以通过修补程序.mk文件来全局传递?
答案 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 ++时添加此选项。这没有其他两个的缺点,但需要做更多的工作。