2012-03-01 59 views
1

我試圖從GnuTLS中編譯示例。我可以毫無問題地編譯GnuTLS。如何在GnuTLS中使用共享對象構建示例

當我安裝了默認的GnuTLS軟件包時,我通常會使用這個命令。我用這個表揚來編譯這個例子。

gcc -o server ex-serv-srp.c -lgnutls 

我從源代碼構建GnuTLS。我可以編譯的例子中使用相同的命令,但是當我嘗試運行的例子,我得到這個錯誤:

./server: error while loading shared libraries: libgnutls.so.28: cannot open shared object file: No such file or directory 

libgnutls.so.28位置是在/usr/local/lib目錄。我怎麼可以在編譯時鏈接的例子,讓他們知道在哪裏可以找到libgnutls.so.28

問候

回答

1

您應該設置LD_LIBRARY_PATH變量這樣export LD_LIBRARY_PATH=/usr/local/lib

+0

是的,它的工作原理!但每當我需要運行服務器時,都無法導出D_LIBRARY_PATH。還有另一種解決問題的方法嗎? – 2012-03-01 16:52:13

+0

那麼,你*可以*在運行服務器之前設置一個shell腳本來設置變量。你也可以像這樣鏈接程序:'-Wl,-rpath,/ usr/local/lib' – zvrba 2012-03-01 17:34:36

2

對於永久性解決方案,請將/usr/local/lib添加到/etc/ld.so.conf並重新運行ldconfig,否則按照zvbra的建議操作。