【问题标题】:How to use ldconfig to add pthread library如何使用ldconfig添加pthread库
【发布时间】:2010-07-09 07:43:45
【问题描述】:

目前,在编译使用 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

【问题讨论】:

    标签: c gcc shared-libraries


    【解决方案1】:

    我不相信你能做到。 LD_LIBRARY_PATH 和 ldconfig 程序用于设置共享库的路径,这些共享库用于在运行时解析可执行文件中的依赖关系。

    编译时,您必须指定要在链接阶段包含哪些库,即 -lpthread

    【讨论】:

      【解决方案2】:

      您可以设置 LD_LIBRARY_PATH 环境变量。

      【讨论】:

      • 不设置LD_LIBRARY_PATH有出路吗?
      【解决方案3】:

      pthreads 库是一个动态库。这意味着,为了使用其功能,您的二进制文件中不同的文件必须在运行时可用。

      您可以通过多种方式做到这一点。设置-lpthread 将自动设置您想要的编译器标志。通过LD_PRELOAD 提供共享文件也会这样做。或者你有你的 pthread 程序 dlopen 明确的库。

      但正确的做法是提供正确的编译器开关。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多