2009-12-12 148 views
20

我想在gcc程序中使用openssl,但它不工作。如何在GCC中使用OpenSSL?

g++ server.cpp /usr/lib/libssl.a -o server 

給出了一條錯誤消息,與-l選項中的任何操作一樣。我必須在命令行上鍵入與openssl鏈接的內容?文件/usr/lib/libssl.a存在,但仍然收到鏈接器錯誤no such function MD5() exists

+1

我看不出使用-l的在您發佈的te命令中。不要在大寫的情況下發布你的問題 - 呼喊是粗魯的。 – 2009-12-12 17:01:56

+2

像'g ++ server.cpp -L/usr/lib -lssl -o服務器'應該這樣做。發佈確切的錯誤,你得到的和有人可以幫助。我第二次尼爾在吶喊聲中;) – 2009-12-12 17:03:26

+0

你缺少'/ usr/lib/libcrypto.a'。 'libcrypto'提供'libssl'使用的加密。因爲LD是單通道liker:'/usr/lib/libssl.a/usr/lib/libcrypto.a',所以按照這個順序添加這兩個。 – jww 2015-09-17 23:52:18

回答

22

不知道你看到的確切的錯誤,很難提供一個確切的解決方案。這是我最好的嘗試。

根據您提供的信息,聽起來好像鏈接程序失敗,因爲它無法在libssl.a中找到對md5函數的引用。我相信這個函數實際上是在libcrypto中,所以你可能需要指定這個庫。

g++ server.cpp -L/usr/lib -lssl -lcrypto -o server

5

在Eclipse IDE中選擇項目屬性 - > C/C++編譯 - >設置GCCÇ連接器(從工具設置) - >添加到庫搜索路徑(-L)

/usr/lib目錄-lssl -lcrypto