我的第一个问题:
我在c ++项目中使用libcURL时遇到问题.我甚至没有把它联系起来.我使用的是Windows XP和Visual C++ 2008 Express Edition.
所以这就是我所做的:
下载的libcURL:curl-7.19.5-devel-mingw32.zip
在VC++中打开新的命令行项目
在我的新项目中包含文件夹'lib'和'include'(也许是微不足道但是花了我一段时间;-)
在属性 - > C/C++ - >常规:添加文件夹'include'到'要包括的其他文件夹'
在属性 - >链接器 - >常规:添加文件夹'lib'到'带库的其他文件夹'
在属性 - >链接器 - >输入:添加其他依赖项:libcurl.a libcrypto.a libeay32.a libidn.a libssh2.a libssh2dll.a libssl32.a libssl.a libz.a libzdll.a ws2_32.lib wldap32.lib
在Properties-> C/C++ - >预处理器:添加定义'CURL_STATICLIB'
我取消选中'Precompiled Headers'并确保使用'Multithreaded-DLL(/ MD)'
现在我将示例simple.c(来自http://curl.haxx.se/lxr/source/docs/examples/simple.c)复制到我的主项目文件中.当我尝试编译时,我得到以下输出:
Neues Erstellen gestartet: Projekt: curl_project, Konfiguration: Debug Win32 Die Zwischen- und Ausgabedateien für das Projekt "curl_project" mit der Konfiguration "Debug|Win32" werden gelöscht. Kompilieren... stdafx.cpp Kompilieren... curl_project.cpp Manifest in Ressourcen wird kompiliert... Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1 Copyright (C) Microsoft Corporation. All rights reserved. Verknüpfen... libcurl.a(ftp.o) : error LNK2001: Nicht aufgelöstes externes Symbol "_strtoll". libcurl.a(file.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_strtoll" in Funktion "_file_do". libcurl.a(cookie.o) : error LNK2001: Nicht aufgelöstes externes Symbol "_strtoll". libcurl.a(transfer.o) : error LNK2001: Nicht aufgelöstes externes Symbol "_strtoll". libcurl.a(ssh.o) : error LNK2001: Nicht aufgelöstes externes Symbol "_strtoll". libcurl.a(http.o) : error LNK2001: Nicht aufgelöstes externes Symbol "_strtoll". libcurl.a(mprintf.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "___umoddi3" in Funktion "_dprintf_formatf". libcrypto.a(b_print.o) : error LNK2001: Nicht aufgelöstes externes Symbol "___umoddi3". libcrypto.a(bn_word.o) : error LNK2001: Nicht aufgelöstes externes Symbol "___umoddi3". libcurl.a(mprintf.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "___udivdi3" in Funktion "_dprintf_formatf". libcrypto.a(b_print.o) : error LNK2001: Nicht aufgelöstes externes Symbol "___udivdi3". libcrypto.a(e_atalla.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca". libcrypto.a(eng_padlock.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__alloca" in Funktion "_ENGINE_load_padlock". libcrypto.a(sha512.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca". libcrypto.a(bn_prime.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca". libcurl.a(mprintf.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca". libcurl.a(formdata.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca". libcrypto.a(err_prn.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca". libcrypto.a(cryptlib.o) : error LNK2001: Nicht aufgelöstes externes Symbol "__alloca". libcurl.a(progress.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "___divdi3" in Funktion "_time2str". libssh2.a(scp.o) : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_snprintf" in Funktion "_libssh2_scp_send_ex". C:\Dokumente und Einstellungen\Punkx\Eigene Dateien\Visual Studio 2008\Projects\curl_project\Debug\curl_project.exe : fatal error LNK1120: 6 nicht aufgelöste externe Verweise. Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\Punkx\Eigene Dateien\Visual Studio 2008\Projects\curl_project\curl_project\Debug\BuildLog.htm" gespeichert. curl_project - 22 Fehler, 0 Warnung(en) ========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========
有人可以看到,我忘记了什么或问题在哪里?我是一名C++初学者,所以它可能是一件值得尝试的东西... Thx for the help!
您正在将MinGW库与Visual C++编译器一起使用.使用正确的二进制包和/或自己构建它.
如果您使用的是Visual C++,则不应该使用.a文件来处理.a文件.