2010-07-09 71 views
0

目前,在編譯使用pthread庫函數的C程序時,我必須顯式指定編譯器選項-lpthread。請建議一種配置ldconfig的方法,以便可以在命令行中未指定pthread庫的情況下使用它。如何使用ldconfig添加pthread庫

目前lpthread -p給出以下輸出:=

[[email protected] 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

我不相信你能做到這一點。 LD_LIBRARY_PATH和ldconfig程序用於設置共享庫的路徑,這些共享庫用於解決可執行文件中的依賴關係運行時

當編譯你將不得不指定哪些庫在鏈接階段,即-lpthread

0

可以設置LD_LIBRARY_PATH環境變量。

+0

有沒有設置LD_LIBRARY_PATH的出路? – Ashish 2010-07-09 07:58:50

0

包括pthreads庫是一個動態庫。這意味着,爲了使用它的功能,您的二進制文件中的文件不同的在運行時必須可用

您可以通過多種方式來完成此操作。設置-lpthread會自動設置你想要的編譯器標誌。通過LD_PRELOAD提供共享文件也是如此。或者你有明確的你的pthreaded程序dlopen庫。

但正確的做法是提供正確的編譯器開關。