Gra*_*Guy 115 c++ gcc compiler-options
我只是想知道-fpermissiveg ++编译器中的标志是什么?我正进入(状态:
错误:获取临时[-fpermissive]的地址
我可以通过给-fpermissive编译器提供标志来解决 这个问题.
编辑:我刚刚发现导致临时地址错误的部分!我现在要修理那个部分.
cli*_*hlt 140
从文档中得出:
-fpermissive
将有关不符合代码的一些诊断程序从错误降级为警告.因此,使用-fpermissive将允许编译一些不合格的代码.
底线:除非你知道自己在做什么,否则不要使用它!
Dav*_*rtz 47
该-fpermissive标志使编译器报告一些实际上是错误的东西(但是被某些编译器允许)作为警告,以允许代码编译,即使它不符合语言规则.你真的应该解决潜在的问题.发布演示问题的最小,可编译的代码示例.
-fpermissive
将有关不符合代码的一些诊断程序从错误降级为警告.因此,使用-fpermissive将允许编译一些不合格的代码.
lef*_*out 17
当你写了一些语言标准不允许的东西(因此不能真正定义明确的行为,这是不足以做到这一点的理由)但是如果天真地喂食它就会映射到某种可执行文件然后编译引擎-fpermissive将执行此操作而不是停止此错误消息.在某些情况下,程序将按照您最初的预期运行,但除非您有一些非常特殊的理由不使用其他解决方案,否则您绝对不应该依赖它.
如果您想要一个真实世界的用例,请尝试编译一个非常旧版本的X Windows - 比如,2004年左右的XFree86或XOrg,就在分裂时 - 使用gcc的"现代"(咳嗽)版本,例如4.9.3.
您会注意到构建CFLAGS同时指定"-ansi"和"-pedantic".从理论上讲,这意味着,"如果有任何事情甚至略微违反语言规范,那就会爆炸".在实践中,3.x系列的gcc没有捕捉到这种东西,并且用4.9.3构建它会在地面留下一个吸烟洞,除非你将CFLAGS和BOOTSTRAPCFLAGS设置为"-fpermissive".
使用该标志,大多数C文件将实际构建,让您可以自由地转移到词法分析器将生成的依赖于版本的残骸.=]