Jon*_*rdy 23 c++ gcc gnu mingw c++11
我需要popen在项目中使用,但我得到:
error: 'popen' was not declared in this scope
看起来GCC __STRICT_ANSI__在两者之下定义-std=c++0x(与我能够找到的信息相反)-std=gnu++0x,这导致popen(和_popen)被省略stdio.奇怪的是,取消定义__STRICT_ANSI__并不能解决问题,也不会向前宣布该功能.我显然错过了一些东西.有合理的解决方法吗?
我使用的是MinGW 4.5.0,并升级到4.5.2,但我仍然遇到同样的问题.我宁愿不必使用msys来编译4.6.0,但如果必须的话,我会这样做.
Dam*_*mon 28
我只是立即在命令行上取消它,这不是非常"干净",但它可以正常工作.
-std=gnu++0x -U__STRICT_ANSI__
Run Code Online (Sandbox Code Playgroud)
可能有一个很好的理由为什么不应该这样做,但它给了我想要的东西(C++ 0x加上GNU扩展,加上遗留的东西仍然有用).我已经做了很长时间了,从来没有遇到过麻烦.但如果它吃了你的猫,不要怪我.
小智 8
我测试了MinGW gcc 4.6.1和gcc 4.7.0:它们都定义__STRICT_ANSI__了-std=c++0x,但没有定义它-std=gnu++0x.
| 归档时间: |
|
| 查看次数: |
8490 次 |
| 最近记录: |