Nob*_*ift 4 c 64-bit nmake libcurl visual-studio-2010
因此,最初,我按照 的说明进行操作,BUILD.WINDOWS.txt通过创建一个新文件winbuild.bat并将其放置在我的 curl 文件夹的根目录中,我能够构建 32 位的 libcurl :
CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
CD winbuild
DEL CURL_OBJS.inc
DEL LIBCURL_OBJS.inc
DEL vc100.idb
nmake /f Makefile.vc mode=dll VC=10 ENABLE_WINSSL=yes GEN_PDB=yes MACHINE=X86
CD ..
EXIT /B 0
Run Code Online (Sandbox Code Playgroud)
然后我从现有代码转到文件/新建/项目.../Visual C++/使用外部构建系统/构建命令行:winbuild.bat。我尝试使用 winbuild64.bat 在我的 x64 属性中创建一个新平台:
CALL "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\x86_amd64\vcvarsx86_amd64.bat"
CD winbuild
DEL CURL_OBJS.inc
DEL LIBCURL_OBJS.inc
DEL vc100.idb
nmake.exe /f Makefile.vc mode=dll VC=10 ENABLE_WINSSL=yes GEN_PDB=yes MACHINE=x64 DEBUG=no
CD ..
EXIT /B 0
Run Code Online (Sandbox Code Playgroud)
但这是我对 winbuild64.bat 的输出:
Setting environment for using Microsoft Visual Studio 2010 x64 tools.
Microsoft (R) Program Maintenance Utility Version 10.00.30319.01
Copyright (C) Microsoft Corporation. All rights reserved.
configuration name: libcurl-vc10-x64-release-dll-ipv6-sspi-winssl
Using SSL:
Using c-ares:
Using SSH2:
Using ZLIB:
Using IDN: true
Using IPv6: true
Using SSPI: 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_PRO
TOTYPES /DUSE_IPV6 /DUSE_WINDOWS_SSPI /DUSE_SCHANNEL /Zi /Fd"..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib\libcurl.pdb"
LFLAGS: /nologo /machine:x64 "/LIBPATH:../../deps/lib" /incremental:no /opt:ref,icf
GenPDB: true
Debug: no
Machine: x64
link.exe /DLL ws2_32.lib wldap32.lib advapi32.lib Normaliz.lib /out:..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib\libcurl.dll /IMPLIB:..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib\libcurl.lib /nologo /machine:x64 "/LIBPATH:../../deps/lib" /incremental:no /opt:ref,icf ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/file.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/timeval.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/base64.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/hostip.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/progress.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/formdata.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/cookie.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/http.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/sendf.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/ftp.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/url.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/dict.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/if2ip.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/speedcheck.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/ldap.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/version.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/getenv.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/escape.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/mprintf.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/telnet.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/netrc.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/getinfo.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/transfer.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/strequal.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/easy.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/security.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_fnmatch.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/fileinfo.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/ftplistparser.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/wildcard.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/krb5.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/memdebug.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/http_chunks.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/strtok.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/connect.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/llist.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/hash.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/multi.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/content_encoding.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/share.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/http_digest.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/md4.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/md5.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/http_negotiate.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/inet_pton.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/strtoofft.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/strerror.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/amigaos.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/hostasyn.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/hostip4.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/hostip6.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/hostsyn.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/inet_ntop.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/parsedate.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/select.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/tftp.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/splay.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/strdup.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/socks.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/ssh.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/rawstr.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_addrinfo.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/socks_gssapi.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/socks_sspi.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_sspi.obj..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/slist.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/nonblock.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_memrchr.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/imap.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/pop3.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/smtp.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/pingpong.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/rtsp.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_threads.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/warnless.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/hmac.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_rtmp.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/openldap.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_gethostname.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/gopher.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/idn_win32.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/http_negotiate_sspi.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/http_proxy.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/non-ascii.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/asyn-ares.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/asyn-thread.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_gssapi.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_ntlm.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_ntlm_wb.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_ntlm_core.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_ntlm_msgs.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_sasl.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_multibyte.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/hostcheck.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/conncache.obj..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/pipeline.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/dotdot.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/x509asn1.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/http2.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_sasl_sspi.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/smb.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_sasl_gssapi.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_endian.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/curl_des.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/vtls/openssl.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/vtls/gtls.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/vtls/vtls.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/vtls/nss.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/vtls/polarssl.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/vtls/polarssl_threadlock.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/vtls/axtls.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/vtls/cyassl.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/vtls/schannel.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/vtls/darwinssl.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/vtls/gskit.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/vtls/mbedtls.obj ..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib\libcurl.res
..\builds\libcurl-vc10-x64-release-dll-ipv6-sspi-winssl-obj-lib/file.obj : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\BIN\amd64\link.exe"' : return code '0x458'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\nmake.exe"' : return code '0x2'
Stop.
Run Code Online (Sandbox Code Playgroud)
我能够在命令提示符中构建 32 位,并且我尝试了 Visual Studio 命令提示符(2010)和 Visual Studio x64 Win64 命令提示符(2010),但都没有奏效。
我已经阅读了这个答案,似乎我可以创建一个项目,然后从 Visual Studio 2010 内部运行 nmake,但我不知道如何在编译期间让它在 winbuild 目录中工作。
我的项目中的代码已经完成,我剩下要做的就是构建依赖项以获取用于部署的 dll 和 lib 文件。我一直在调试 libcurl 7.25.0 构建,哈哈,我正在尝试构建 7.47.1。所有帮助表示赞赏。
小智 5
这很简单。
1: 安装windows SDK, VS with VC,
2: 下载最新的curl release
3: Win+R cmd
4: cd to [your vs installation]\VC\bin[amd64 or x86_amd64],根据类型使用文件夹构建你想要的(我在 64 位机器上使用 amd64 在我的 64 win 8.1 上使用 curl dll
5:相应地运行 vcvars64 或 vcvars32
6:cd 到 [extracted CURL dir]\winbuild
7:运行:
nmake /f makefile.vc ENABLE_WINSSL= yes mode=dll MACHINE=x64 VC=13 根据您的安装使用x64和VC版本。例如VS 2013是13
需要一些时间并在\CURL\builds\libcurl-vc13-x64-release-dll中构建一个dll- ipv6-sspi-winssl 或 \CURL\builds\libcurl-vc13-x86-release-dll-ipv6-sspi-winssl
如果cmd找不到nmake,在系统PATH变量中添加:blah blah;bleb, bleh bleh;[your VS installation dir]\VC\bin
确认指定的文件夹包含 nmake.exe。