问题描述
在共享库的构建过程中,我想控制对libc的依赖。
因此,我在命令行中引入了-nostdlib(使用clang 8或gcc 9;这是相同的。)
如果我不将我的库链接到其他共享库(例如libossp-uuid),则该方法有效。
但不能使用-lossp-uuid。
cc -fPIC -shared -nostdlib -olibmain.so main.c -L/usr/local/lib -lossp-uuid -I/usr/local/include
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
构建该库。