是的,所以我在ARM设备上编译perl。它配置很好,所以我开始编译过程。完成依赖后,我得到这个输出:
cc -L/lib -L/usr/lib -L/usr/local/lib -o miniperl \
gv.o toke.o perly.o pad.o regcomp.o dump.o util.o mg.o reentr.o mro.o keywords.o hv.o av.o run.o pp_hot.o sv.o pp.o scope.o pp_ctl.o pp_sys.o doop.o doio.o regexec.o utf8.o taint.o deb.o universal.o globals.o perlio.o perlapi.o numeric.o mathoms.o locale.o pp_pack.o pp_sort.o \
miniperlmain.o opmini.o perlmini.o -lnsl -ldl -lm -lcrypt -lutil -lc
gv.o: In function `Perl_gv_stashpvn':
gv.c:(.text+0x5794): undefined reference to `__stack_chk_fail'
gv.c:(.text+0x5798): undefined reference to `__stack_chk_guard'
同样适用于其他文件的加载。我试过了:
有什么想法吗?
答案 0 :(得分:5)
发布一个答案,将此问题从“未答复”清单中删除......
Per @ Alex对原始问题的评论,解决方案是运行
./Configure -Accflags="-fno-stack-protector"
然后重建。重要的是,您必须使用-fno-stack-protector
编译每个源文件,以便摆脱对__stack_chk_guard
的调用。 link 阶段手动传递-fno-stack-protector
并没有任何用处。