C 日志依赖的传递性

C 日志依赖的传递性,c,dependencies,shared-libraries,C,Dependencies,Shared Libraries,上下文:带有gcc工具链的经典linux系统(archlinux) 我的程序(我们称之为p)依赖于我的共享库(我们称之为“foo”或libfoo.so) libfoo.so获得了一个公共头foo.h并且p将其包含在它的一个文件中 libfoo.so依赖于几个公共函数的pthreadlib(在foo.h中的其他函数中),但p不使用这些函数 问题是,当我将p链接到libfoo.so时,会请求libpthread,我不明白为什么以及如何解决这个问题。将-pthread添加到GCC命令行。我不想链接到l

上下文:带有gcc工具链的经典linux系统(archlinux)

我的程序(我们称之为
p
)依赖于我的共享库(我们称之为“foo”或
libfoo.so

libfoo.so
获得了一个公共头
foo.h
并且
p
将其包含在它的一个文件中

libfoo.so
依赖于几个公共函数的
pthread
lib(在
foo.h
中的其他函数中),但p不使用这些函数


问题是,当我将p链接到libfoo.so时,会请求libpthread,我不明白为什么以及如何解决这个问题。

-pthread
添加到GCC命令行。我不想链接到libpthread,因为p不使用任何libpthread函数项:),但p依赖于libfoo,而libfoo依赖于pthread,所以P依赖于pthread。你需要校长看看。由于libfoo的用户不使用pthread,因此从foo.h中删除对pthread的依赖也是一个好主意。