尽管有 -nostdlib,为什么仍然依赖 libc

Why libc dependency despite of -nostdlib

我想在共享库构建过程中控制对 libc 的依赖。

因此,我在命令行中引入了 -nostdlib(使用 clang 8 或 gcc 9;它们是一样的)。

如果我不 link 我的 lib 与其他一些共享库(libossp-uuid,以命名)。

但不适用于 -lossp-uuid。

cc -fPIC -shared -nostdlib -olibmain.so   main.c -L/usr/local/lib -lossp-uuid -I/usr/local/include

ldd 显示对 libc.so.7.

的依赖
ldd ./libmain.so
./libmain.so:
        libossp-uuid.so.16 => /usr/local/lib/libossp-uuid.so.16 (0x80066f000)
        libc.so.7 => /lib/libc.so.7 (0x80024a000)

问题是为什么我不能。有解决办法吗。

非常感谢您提出任何明智的建议。 这对我来说是一个很大的谜。

依赖项似乎源于 libossp-uuid.so.16。您还必须使用 -nostdlib 构建该库。