簡體   English   中英

如何修復“/usr/bin/ld:警告:trap.o:missing.note.GNU-stack 部分暗示可執行堆棧”?

[英]How can I fix "/usr/bin/ld: warning: trap.o: missing .note.GNU-stack section implies executable stack"?

我分別在wsl和我主要使用的操作系統archLinux上的ubuntu20.04上編譯了相同的項目。 在 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

似乎是由 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

是不是新舊版本的差異造成的? 我該如何解決?

使用 ld 選項-z noexecstack

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ffcf9c5700e49c0aee42dcba9a12ba21338e8136

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM