好的,做一个旧的VC项目不起作用,所以我试着根据讨论winbuild文件夹的文档并直接运行nmake / f Makefile.vc ...和STILL得到未解析的外部。在如此广泛使用和维护的系统上,这不应该是这么困难。全部来自今天的全新下载。
我正在使用VS2013命令行提示符并通过>捕获输出重定向到文本文件和2>重定向错误内容我得到了
nmake /f Makefile.vc mode=dll VS=12 > compileResult.txt 2> compileError.txt
(错误内容)
Microsoft (R) Program Maintenance Utility Version 12.00.21005.1
Copyright (C) Microsoft Corporation. All rights reserved.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\link.exe"' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
(其他构建内容)
configuration name: libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl
Using SSL:
Using SSH2:
Using ZLIB:
Using IDN: true
Using IPv6: true
Using SSPI: true
Using SPNEGO: true
Using WinSSL: true
CFLAGS: /I. /I ../lib /I../include /nologo /W3 /EHsc /DWIN32 /FD /c /DBUILDING_LIBCURL /I"../../deps/include" /DUSE_WIN32_IDN /DWANT_IDN_PROTOTYPES /DUSE_IPV6 /DUSE_WINDOWS_SSPI /DUSE_SCHANNEL /DHAVE_SPNEGO
LFLAGS: /nologo /machine:x86 "/LIBPATH:../../deps/lib"
GenPDB:
Debug:
Machine: x86
link.exe /DLL ws2_32.lib wldap32.lib advapi32.lib Normaliz.lib /out:..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib\libcurl.dll /IMPLIB:..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib\libcurl.lib /nologo /machine:x86 "/LIBPATH:../../deps/lib" ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/file.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/timeval.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/base64.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/hostip.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/progress.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/formdata.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/cookie.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/http.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/sendf.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/ftp.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/url.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/dict.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/if2ip.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/speedcheck.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/ldap.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/version.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/getenv.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/escape.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/mprintf.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/telnet.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/netrc.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/getinfo.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/transfer.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/strequal.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/easy.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/security.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_fnmatch.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/fileinfo.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/ftplistparser.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/wildcard.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/krb5.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/memdebug.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/http_chunks.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/strtok.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/connect.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/llist.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/hash.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/multi.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/content_encoding.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/share.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/http_digest.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/md4.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/md5.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/http_negotiate.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/inet_pton.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/strtoofft.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/strerror.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/amigaos.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/hostasyn.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/hostip4.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/hostip6.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/hostsyn.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/inet_ntop.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/parsedate.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/select.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/tftp.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/splay.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/strdup.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/socks.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/ssh.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/rawstr.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_addrinfo.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/socks_gssapi.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/socks_sspi.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_sspi.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/slist.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/nonblock.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_memrchr.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/imap.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/pop3.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/smtp.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/pingpong.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/rtsp.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_threads.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/warnless.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/hmac.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_rtmp.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/openldap.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_gethostname.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/gopher.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/idn_win32.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/http_negotiate_sspi.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/http_proxy.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/non-ascii.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/asyn-ares.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/asyn-thread.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_gssapi.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_ntlm.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_ntlm_wb.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_ntlm_core.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_ntlm_msgs.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_sasl.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/curl_multibyte.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/hostcheck.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/bundles.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/conncache.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/pipeline.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/dotdot.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/x509asn1.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/http2.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/vtls/openssl.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/vtls/gtls.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/vtls/vtls.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/vtls/nss.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/vtls/qssl.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/vtls/polarssl.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/vtls/polarssl_threadlock.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/vtls/axtls.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/vtls/cyassl.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/vtls/curl_schannel.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/vtls/curl_darwinssl.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib/vtls/gskit.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib\libcurl.res
Creating library ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib\libcurl.lib and object ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-lib\libcurl.exp
Copying libs...
link.exe /incremental:no /libpath:"..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl\lib" /nologo /out:..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl\bin\curl.exe /subsystem:console /machine:x86 libcurl.lib ws2_32.lib wldap32.lib advapi32.lib Normaliz.lib ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl\tool_hugehelp.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl\nonblock.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl\rawstr.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl\strtoofft.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_binmode.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_bname.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_cb_dbg.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_cb_hdr.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_cb_prg.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_cb_rea.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_cb_see.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_cb_wrt.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_cfgable.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_convert.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_dirhie.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_doswin.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_easysrc.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_formparse.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_getparam.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_getpass.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_help.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_helpers.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_homedir.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_libinfo.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_main.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_metalink.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_mfiles.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_msgs.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_operate.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_operhlp.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_panykey.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_paramhlp.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_parsecfg.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_setopt.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_sleep.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_urlglob.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_util.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_vms.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_writeenv.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_writeout.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl/tool_xattr.obj ..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl-obj-curl\curl.res
tool_cb_rea.obj : error LNK2019: unresolved external symbol _curlx_read referenced in function _tool_read_cb
..\builds\libcurl-vc12-x86-release-dll-ipv6-sspi-spnego-winssl\bin\curl.exe : fatal error LNK1120: 1 unresolved externals
答案 0 :(得分:2)
您使用的说明实际上非常陈旧。我不知道这些VS工作区是否得到了积极维护,并且开发人员鼓励人们使用更新的makefile进行命令行构建(请参阅curl邮件列表中的这个主题:http://curl.haxx.se/mail/lib-2014-03/0220.html)。
如果查看curl源目录,则会有一个名为winbuild的子目录。我通常可以使用Makefile.vc中的makefile成功构建curl和libcurl。在BUILD.WINDOWS.txt文件中清楚地解释了这些选项。基本构建命令可能类似于:
C:\curl-src\winbuild> nmake -f Makefile.vc MODE=dll VC=12 MACHINE=x64
这将在curl源目录中生成一个“builds”文件夹,该文件夹将包含curl.exe,libcurl.dll和libcurl.lib。如果您选择MODE = static,则不会获得libcurl.dll,但是您将获得libcurl_a.lib,这可能是您的项目所需的。
您可以在VS项目中添加二进制文件和库。您还可能需要添加curl include目录中的.h文件以及所需的任何其他源文件。
对于curl 7.36.0,makefile中存在一个小问题,开发人员很快就纠正了这个问题。您可以在下面的Daniel Stenberg的评论中从GitHub存储库获取更新的makefile。在构建之前,只需使用GitHub存储库中windbuild目录中的makefile替换release包的winbuild目录中的makefile。
希望有所帮助。