gpt4 book ai didi

gcc - 如何配置 gcc 默认使用 -no-pie?

转载 作者:行者123 更新时间:2023-12-01 13:22:55 64 4
gpt4 key购买 nike

我想在 Linux 上编译以下程序:

    .global _start
.text
_start:
mov $1, %rax
mov $1, %rdi
mov $msg, %rsi
mov $13, %rdx
syscall
mov $60, %rax
xor %rdi, %rdi
syscall
msg:
.ascii "Hello World!\n"

但是,它给了我以下链接器错误:

$ gcc -nostdlib hello.s
/usr/bin/ld: /tmp/ccMNQrOF.o: relocation R_X86_64_32S against `.text' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status

我认为它不起作用的原因是因为 gcc 正在使用 -pie默认生成共享对象。因此,使用 -no-pie修复它:

$ gcc -no-pie -nostdlib hello.s
$ ./a.out
Hello World!

如何配置 gcc 以使用 -no-pie默认情况下?我正在使用 Arch Linux。

最佳答案

关于gcc - 如何配置 gcc 默认使用 -no-pie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49101265/

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