gpt4 book ai didi

c - ld:与 std c 静态库的链接

转载 作者:行者123 更新时间:2023-11-30 16:51:38 26 4
gpt4 key购买 nike

我用gcc -c -nostdlib -fno-stack-protector <my code> -o <my cobj>编译我的c代码,我想使用std库函数如 sprintf strcmp等等。那么我如何链接我的cobj文件 std c静态库?

我的Makefile链接脚本是 ld -T $@.ld -o $@.o $^ -L.. -llib --no-check-sections

ps:我用 -nostdlib 编译选项,因为我不想要 crt std的一部分库,但我想使用与平台无关的函数,例如 sprintf , strcmp , random , va_list等等

最佳答案

您可以使用 -nostartfiles -static -nostdlib -fno-stack-protector -lc 进行编译,但请注意 libc 的某些部分可能依赖于 libgcc 中的部分(__gcc_personality_v0 等),因此您很可能在链接过程中遇到错误。

您可以提供此类函数的您自己的虚拟(或不那么虚拟)实现。或者您可以使用不依赖于 libgcc 的不同 libc 实现(可能是 newlib 或 uClibc)。

This question可能相关。

关于c - ld:与 std c 静态库的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41690384/

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