MinGW下为何一旦同时使用Release模式和math库,就会编译失败
别用MinGW,用MinGW-w64参考 c++ - -O1/2/3 with -std=c++1y/11/98(逃
■网友
g++ 5.1.0(tdm64)实测并没什么问题。代码如下:#include \u0026lt;cmath\u0026gt;#include \u0026lt;cstdio\u0026gt;#define PI 3.141592653589793int main(){ float x = 3.0f, y = 4.0f; float result = hypotf(x, y); printf("x=3, y=4, hypot=%f", result); return 0;}编译参数如下。一般Release模式的参数应该和这个差不多。g++ http://m.cc -O2 -s输出结果也没啥问题。E:\\tmp\u0026gt;ax=3, y=4, hypot=5.000000题主是不是可以考虑更新一下MinGW版本。3.2.1实在是老掉牙了。
■网友
这是个mingw的bug....参照c++ - error: \u0026#39;_hypot\u0026#39; was not declared in this scope
■网友
我用mingw编译Qt的时候也遇到类似的问题。问题在于一些以下划线开头的C函数,比如_fileno,它们不在ISO C标准里。mingw(MinGW - Minimalist GNU for Windows download)和gcc一样默认隐去这些函数。开关的宏是__STRICT_ANSI__,你可以把-U__STRICT_ANSI__加到编译选项里undef掉这个宏。或者用-std=gnu99替代-std=c99,-std=gnu++11替代-std=c++11,依次类推。详见C Dialect Options。Qt官方推荐的toolchain,mingw-builds(MinGW-builds download)其实是mingw-w64(MinGW-w64 - for 32 and 64 bit Windows download)。tdm-gcc也是mingw-w64。mingw-w64里_fileno这些函数始终有定义,不会有这个问题。
推荐阅读
- #补贴#江阴为何迟迟没执行?|解忧帮 无锡:机动车报废有补贴
- OC为何跌出语言榜前十
- 何能|布局素质教育 教育巨头为何能迅速推进?
- 汽车|把车越卖越贵,全新领克01为何可以这样?
- 阿里程序员网上招人的情况为何如此多见
- 心流西春|为何你的后半箱油总是不耐用?油是正经油,问题可能出在这里
- 一粒尘埃的尘|为何很多新车不再设计“雾灯”,雾灯不重要吗?
- 环球车讯网|宝马MINI 为何在“迷你”的路上越跑越远?
- 汽车一起看|为何说国产高端SUV三强之首是名爵HS,领克和WEY竟无法反驳?
- 汽车知识|沃尔沃XC60为何能直击年轻人的心?看完便知
