没有简单的答案:)
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 的想法。