我正在做家庭作业,我想使用<ncurses.h>
。因此gcc filename.c -lncurses
生成汇编程序输出,./a.out
执行代码。为了避免***stack smashing detected***
或segmentation fault error
,我还需要执行gcc filename.c -fno-stack-protector
。有什么办法可以在终端上执行这两个命令,或者代码可以执行-fno-stack-protector
命令吗?
ps:请放轻松我是一个完整的菜鸟:):P
答案 0 :(得分:1)
GCC可以在命令行上使用多个选项。如果这些选项兼容,您应该能够传递-f
和-l
选项的任意组合。您可以通过运行man gcc
(或在某些系统上info gcc
)获取有关调用GCC的正确语法的大量信息。
而且,正如我上面评论的那样,如果你遇到“检测到堆栈粉碎”的错误,解决方案不传递-fno-stack-protector
(这只会禁用GCC使用的代码)检测这些类型的错误),而是修复程序中导致堆栈被覆盖的实际错误。