我在wsl中的ubuntu20.04和我主要使用的操作系统archLinux上分别编译了相同的项目。在wsl上,一切都正常,而在archlinux上,错误消息如下所示:
/usr/bin/ld: warning: trap.o: missing .note.GNU-stack section implies executable stack
/usr/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
它似乎是由链接器ld引起的错误,它在我的linux操作系统上的版本消息是:
GNU ld (GNU Binutils) 2.39
Copyright (C) 2022 Free Software Foundation, Inc.
在我的wsl上是:
GNU ld (GNU Binutils for Ubuntu) 2.34
Copyright (C) 2020 Free Software Foundation, Inc.
在arch上,gcc的版本是12.1.1,而wsl的版本是gcc 9.3.0
是因为新旧版本的不同吗?我怎么才能修好它?
发布于 2022-08-24 06:16:09
使用ld选项-z noexecstack
调用。
归功于https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ffcf9c5700e49c0aee42dcba9a12ba21338e8136
。
https://stackoverflow.com/questions/73435637
复制相似问题