LibCurl -释放静态库链接问题



我做这个已经有一段时间了。我希望有人能告诉我我做错了什么。

这些是我目前为止所采取的步骤:

-下载最新版本的cURL(7.21.7)。

-在Visual Studio 2010中使用vc6curl打开解决方案。

-设置libcurl项目配置为"release"并构建。构建成功。创建一个名为"LIB-Release"的文件夹。它包含几个obj文件和libcurl。Lib "文件也在这里。

测试应用程序:

在项目设置中,我将编译器指向curl include (headers)。

C/c++>>通用>>附加包含目录

-在预处理器定义中增加了"CURL_STATICLIB"

C/c++>>预处理器定义

-添加了"libcurl. conf"文件的路径。附加库依赖项

Link>> General>>附加图书馆目录

libcurl员工"。附加的依赖项

链接>>输入>>附加依赖项

-将我的项目配置设置为"release"并点击build!

我得到42个未解决的外部错误:

Error 65 Error LNK1120: 42 unresolved外部C:UsersNickDocumentsVisual Studio2010 curl_static_lib 发布项目 curl_static_lib.exe curl_static_libLNK2001:无法解析的外部符号___WSAFDIsSet@8 C:UsersNickDocumentsVisual Studio2010年项目 curl_static_lib curl_static_lib libcurl.lib curl_static_lib (select.obj)无法解析的外部符号_imp_accept@12 C:UsersNickDocumentsVisual Studio2010年项目 curl_static_lib curl_static_lib libcurl.lib curl_static_lib (ftp.obj)未解析的外部符号_imp_ber_free C:UsersNickDocumentsVisual Studio2010年项目 curl_static_lib curl_static_lib libcurl.lib curl_static_lib (ldap.obj)错误26:无法解析的外部符号_imp_bind@12 C:UsersNickDocumentsVisual Studio2010年项目 curl_static_lib curl_static_lib libcurl.lib (connect.obj) curl_static_lib

我也尝试过使用"调试"配置进行构建。有人能告诉我我哪里错了吗?

为windows构建CURL的最佳方法是使用NMake提供的Makefiles。你可以

  1. 修改CURL根目录下的Makefile来设置你使用的VC版本,然后运行nmake vc-all(或者选择其他适合你的VC目标)。检查。/docs/INSTALL文件的"Win32"部分

  2. 使用Makefile。Vc从。/winbuild文件夹。查看。/winbuild/BUILD.WINDOWS.txt查看如何使用。

这些错误意味着libcurl使用的函数不在您的链接器配置中指定的任何导入库中。

听起来至少应该有套接字导入库(ws2_32.lib)。

注意,如果你将libcurl编译为一个DLL,那么所有的导入库都被指定为DLL链接的一部分,所以你的应用程序不需要导入所有这些库,只需要链接到curl导入库。事实上,你选择将curl编译为静态库使得curl代码成为应用程序的一部分,因此所有支持库必须在应用程序的链接配置中提供。

最新更新