我正在尝试使用以下配置构建json-c:
./configure --target=arm-linux-androideabi --host=arm-linux-androideabi \
--build=x86_64-unknown-linux-gnu
但我收到以下错误:
cc1: error: command line option '-std=c++11' is valid for C++/ObjC++ but not for C [-Werror]
我尝试将--disable-std-c++11
和--disable-std-cpp11
添加到配置中,但我总是遇到同样的问题。
如何解决这个问题?
答案 0 :(得分:3)
由于没有人回答我,我会回答自己
实际上-std=c++11
是由全局变量CPPFLAGS
注入的。
我刚刚在./configure
和-std=c++11
消失
export CPPFLAGS=""
答案 1 :(得分:0)
如果使用ADD_DEFINITIONS(-std=c++0x)
设置了该标记,则可以使用REMOVE_DEFINITIONS(-std=c++0x)
删除该标记,然后仅使用SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
为什么会做这样的事情?在大型混合“大多数C ++”项目中,ADD_DEFINITIONS
和REMOVE_DEFINITIONS
是基于特定cmake目录在std c++
级别之间切换的快速方法,但具有抛出警告的意外副作用在编译期间 - 或-Werror
版本上的编译失败。
答案 2 :(得分:-1)
对我来说,这意味着“编辑setup.py并删除它添加的地方-std = c ++ 11”FWIW。