目前,在编译使用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
答案 0 :(得分:0)
您可以设置LD_LIBRARY_PATH env变量。
答案 1 :(得分:0)
我不相信你能做到这一点。 LD_LIBRARY_PATH和ldconfig程序用于设置共享库的路径,这些库用于在运行时中解析可执行文件中的依赖项。
编译时,您必须指定在链接阶段包含哪些库,即-lpthread
答案 2 :(得分:0)
pthreads库是一个动态库。这意味着,为了使用其功能,您的二进制文件中的文件 distinct 必须在运行时 。
您可以通过多种方式完成此操作。设置-lpthread
将自动设置所需的编译器标志。通过LD_PRELOAD
提供共享文件也会这样做。或者你明确地使用了pthreaded程序dlopen
。
但正确的方法是提供正确的编译器开关。