gpt4 book ai didi

c - 我应该如何为 gcc 的 -nostartfiles 或 -nostdlib 选项编写代码?

转载 作者:太空宇宙 更新时间:2023-11-03 23:59:27 25 4
gpt4 key购买 nike

我在 gcc 编译选项下遇到了 -nostartfiles-nostdlib 选项。但是,我不明白如何为上述选项编写代码。您是否需要编写每个启动函数(如 _start__libc_csu_init 等)?

我能否获得这两个选项的简化代码以了解它的工作原理?

编辑:

另外,我刚刚发现将staticnostartfiles 一起使用会引发段错误。重现相同内容的简单 C 代码:

#include<stdio.h>
#include<stdlib.h>
void _start()
{
int x = main();
exit(x);
}

int main()
{
printf("Hello world!\n");
return 0;
}

编译使用:

gcc -nostartfiles -static -o foo foo.c

上述代码的输出是一个段错误。这是预期的输出吗?

最佳答案

是的,这是预期的行为。如果您想编写自己的启动代码或您自己的标准库,则需要这些选项,否则您无法编写自己的代码,因为符号会重复。

关于c - 我应该如何为 gcc 的 -nostartfiles 或 -nostdlib 选项编写代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50719973/

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