如何解决如何在c ++ config.h中取消定义宏_GLIBCXX_USE_LONG_LONG
我正在尝试将c ++ 14标准库用于ARM CPU。出现以下错误:
/opt/gcc-arm-none-eabi-5_4-2016q2/arm-none-eabi/include/c++/5.4.1/cstdlib: In function 'long long int std::abs(long long int)':
/opt/gcc-arm-none-eabi-5_4-2016q2/arm-none-eabi/include/c++/5.4.1/cstdlib:174:20: error: conflicting declaration of C function 'long long int std::abs(long long int)'
abs(long long __x) { return __builtin_llabs (__x); }
^
/opt/gcc-arm-none-eabi-5_4-2016q2/arm-none-eabi/include/c++/5.4.1/cstdlib:166:3: note: previous declaration 'long int std::abs(long int)'
abs(long __i) { return __builtin_labs(__i); }
由于功能abs()
在cstdlib
中定义为
#ifndef __CORRECT_ISO_CPP_STDLIB_H_PROTO
inline long
abs(long __i) { return __builtin_labs(__i); }
inline ldiv_t
div(long __i,long __j) { return ldiv(__i,__j); }
#endif
#ifdef _GLIBCXX_USE_LONG_LONG
inline long long
abs(long long __x) { return __builtin_llabs (__x); }
#endif
我认为我可以取消定义_GLIBCXX_USE_LONG_LONG
来修复错误。但是问题是,宏是在c++coinfig.h
中定义的。取消定义_GLIBCXX_USE_LONG_LONG
的正确方法是什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。