gpt4 book ai didi

c - Assembly 中的外部函数声明产生警告

转载 作者:行者123 更新时间:2023-12-04 14:55:24 25 4
gpt4 key购买 nike

我正在调用一个使用以下代码片段在汇编中开发的外部函数:

extern int myfunction();

除了执行代码,为了在汇编中声明一个函数,我正在使用:

.section .text
.global myfunction
.type myfunction, @function

这应该告诉编译器汇编文件包含对名为 myfunction 的外部函数的引用。然后我使用以下命令编译代码:

gcc -m32 -o obj/main.o -c src/main.c
gcc -m32 -o obj/myfunction.o -c src/myfunction.s
gcc -o bin/myfunction obj/main.o obj/myfunction.o -m32

当我使用 GCC 10 进行编译时,会显示一条警告:

/usr/bin/ld: warning: relocation in read-only section `.text'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE

我怎样才能抑制该警告?

最佳答案

将标志 --no-pie 添加到您的构建命令中。这指定编译器不生成 PIE(位置独立可执行文件)文件。 PIE 通常用于共享库,因此可以将相同的库代码加载到每个程序地址空间中的某个位置,该位置不会与正在使用的其他内存(例如,其他共享库)重叠。

关于c - Assembly 中的外部函数声明产生警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68128327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com