我想用-std=c++11来构建boost和其他包?是否可以全局传递,而不是通过修补程序。mk文件?
没有简单的方法全局传递它,并且有一个很好的理由:一些包可能无法使用c++ 11构建,例如,因为它们使用了新的保留字。
如果你真的想冒这个险,你有三个选择:
-
将
-std=c++11
添加到BR2_TARGET_OPTIMIZATION
(在工具链菜单中)。这将包含在工具链包装器中,因此将用于每次编译。注意,对于C程序,这将给你"命令行选项' -std=c++11 '对c++/objc++有效,但对C无效"警告。 -
修改包/Makefile。加入
-std=c++11
至TARGET_CXXFLAGS
。在这种情况下,它只传递给c++编译器。然而,TARGET_CXXFLAGS
只是传递给包构建系统,并不是所有的构建系统都支持它。 -
修改
toolchain/toolchain-wrapper.c
以在调用g++时添加此选项。这没有其他两种方法的缺点,但是需要更多的工作来实现。