我使用gcc -c -nostdlib -fno-stack-protector <my code> -o <my cobj>
编译我的c代码,并且我想使用std
库函数,例如sprintf
strcmp
等等。所以如何链接我的{ {1}} cobj
std
静态库的文件?
我的c
链接脚本为Makefile
ps:我使用ld -T $@.ld -o $@.o $^ -L.. -llib --no-check-sections
选项进行编译,因为我不想要-nostdlib
库的crt
部分,但我想使用像{{}}这样的平台无关的函数{1}},std
,sprintf
,strcmp
等等
答案 0 :(得分:0)
您可以使用-nostartfiles -static -nostdlib -fno-stack-protector -lc
进行编译,但要注意libc的某些部分可能依赖于libgcc(__gcc_personality_v0
等)的部分,因此您很可能在链接期间出错。
您可以提供此类函数的虚拟(或非虚拟)实现。或者您可以使用不依赖于libgcc的不同libc实现(可能是newlib或uClibc)。
This question可能相关。