目前,在编译使用pthread库函数的C程序时,我必须显式指定编译器选项-lpthread。请建议一种配置ldconfig的方法,以便可以使用pthread库,而无需在命令行中指定它。
目前,lpthread -p给出了以下输出:=
[root@localhost lib]# ldconfig -p | grep pthread
libpthread.so.0 (libc6, OS ABI: Linux 2.6.9) => /lib/libpthread.so.0
libOpenIPMIpthread.so.0 (libc6) => /usr/lib/libOpenIPMIpthread.so.0发布于 2010-07-09 16:02:07
我不相信你能做到。LD_LIBRARY_PATH和ldconfig程序用于设置共享库的路径,这些共享库用于在运行时解析可执行文件中的依赖项。
编译时,您必须指定要在链接阶段包含哪些库,即-lpthread
发布于 2010-07-09 15:54:14
您可以设置LD_LIBRARY_PATH环境变量。
发布于 2010-07-09 16:03:03
pthreads库是一个动态库。这意味着,为了使用它的功能,与您的二进制文件不同的文件必须在运行时可用。
您可以通过几种方式来实现这一点。设置-lpthread将自动设置您想要的编译器标志。通过LD_PRELOAD提供共享文件也是如此。或者让pthreaded程序显式地dlopen库。
但正确的方法是提供正确的编译器开关。
https://stackoverflow.com/questions/3210719
复制相似问题