在使用libc符号时,是否应该显式地将我的程序或库与libc链接?
即,cc ... -lc
这个问题适用于程序情况下的Makefile,库情况下的Makefile和pkg-config文件。
还有一个附带的问题:如果我根本不使用libc符号怎么办?那可能是个很没用的程序,但我很好奇。
我似乎记得一些文章或书推荐这样做,但现在我找不到它。是否存在这样做或不这样做会有问题的情况?
编辑:
我通常使用gcc和clang。(我还编辑了第三段,以明确询问Makefiles和pkg-config文件。)
发布于 2021-09-13 23:15:07
在使用libc符号时,是否应该显式地将我的程序或库与libc链接?
不是的。来自POSIX cc
标准C语言库自动提供给C语言程序.如果我根本不使用libc符号呢?
然后仍然不显式地针对libc链接,让编译器自动地与它链接。
是否存在这样做或不这样做会有问题的情况?
当您正在编写内核、裸金属软件或其他特定于您正在使用的环境的低级程序时,您不想链接标准库。另外,当您不接受库的许可时。
发布于 2021-09-13 22:04:43
如果我根本不使用libc符号呢?
然后,您的程序是独立的,不需要与标准库链接。
如果使用gcc,则需要使用-nostdlib命令行选项编译它。
https://stackoverflow.com/questions/69169234
复制相似问题