沒有簡單的答案:) Libcurl依賴於其他第三方庫(它取決於您使用的二進制分發)。當你擺脫DLL時,你必須手動鏈接相應的第三方。
好吧,所以第一點是你不應該鏈接到libcurl.lib,因爲它將你綁定到你不想要的DLL。第二點 - 當你連接libcurl_static.lib然後(如上所述),你也必須鏈接它依賴的庫。簡單的方法是做這樣的事情:
#if defined CURL_STATICLIB
#if defined _DEBUG
#pragma comment(lib, "libcurl-7.19.3-win32-ssl-msvc\\lib\\Debug\\curllib_static.lib")
#else
#pragma comment(lib, "libcurl-7.19.3-win32-ssl-msvc\\lib\\Release\\curllib_static.lib")
#endif
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "libcurl-7.19.3-win32-ssl-msvc\\libeay32.lib")
#pragma comment(lib, "libcurl-7.19.3-win32-ssl-msvc\\openldap.lib")
#pragma comment(lib, "libcurl-7.19.3-win32-ssl-msvc\\ssleay32.lib")
#endif
但是這樣 - 你會得到三個更多的依賴關係。或者,您可以搜索一種靜態鏈接方式,但它是一個不同的故事。
作爲另一種選擇 - 你可以從源禁用所有你不需要從而消除不必要的依賴關係的特徵後重建libcurl_static.lib(如「禁用特定的協議在Win32中建立」的INSTALL文件) 。
最後一點 - 由於libcurl對來自源代碼的Windows編譯的支持很差,我建議您重新考慮擺脫curllib.dll的想法。