QNX运行时错误:未知符号__stack_chk_guard(QNX runtime error:

2019-10-23 05:32发布

我想测试(在较早的concequence QNX 6.6.0和6.5.0之间的向后兼容性问题,我有)。 我编译使用SDP6.6.0一个相对简单的程序并执行它中微子6.5.0。 当我执行该程序的后续运行时错误弹出:

未知符号:__stack_chk_guard

LDD:FATAL:无法解析所有的符号

是什么原因造成的?..


(我已经找到了解决方案,但它不是rightaway工作。当我开始写这个问题我意识到我犯了这个错误。对于未来的参考,我会在这里提供的解决方案Q&A我自己)。

Answer 1:

由于QNX被使用gcc(QCC):

“缓冲区溢出检测在当前和新的gcc启用但是建立在一些(稀有和复杂的)情况下,这可能会导致在运行时并发症如未定义的符号: __stack_chk_guard 。错误在这种情况下可能的解决方案是通过将禁用该功能-fno-stack-protectorCFLAG由GCC编译选项”使用的列表(见[ 1 ]和有什么用-fno-堆栈保护的? )。

另外:我发现一个论坛主题 ,其中瑞安曼斯菲尔德(QNX编译铅维护者,我认为)说:

一个问题[一]会打试图让6.6.0二进制文件上运行6.5.0,是一切是建立与-fstack-protector ,它依赖于支持在libc中。 这是不是在libc的 6.5.0,但IIRC,6.5.0SP1增加。

因此,在QNX 6.5.0SP1这个问题似乎是固定的。



文章来源: QNX runtime error: unknown symbol __stack_chk_guard