最近工作中使用到了Curl库,git clone https://github.com/curl/curl.git下载代码。源代码路径下winbuild目录包含有BUILD.WINDOWS.txt文件,这个就是Visual C++编译的说明文件了。项目中使用到了openssl,首先复制openssl对应的include、lib到deps路径对应子目录下。根据需要配置编译选项:nmake /f makefile.vc mode=static VC=10 ENABLE_IDN=no debug=no MACHINE=x86 RTLIBCFG=static with_ssl=static
顺利生成了libcurl_a.lib。x64配置编译选项:nmake /f makefile.vc mode=static VC=10 ENABLE_IDN=no debug=no MACHINE=x64 RTLIBCFG=static with_ssl=static 这个失败了,file.obj的计算机类型“x86”与目标计算机类型“x64”冲突。
字面理解file.obj还是32位编译的。检查cl没找到对应x64的编译选项。百度有人讨论,需要执行下vcvarall.bat,实验vcvarsall.bat
x86_amd64 设置好环境。nmake /f makefile.vc mode=static VC=10 ENABLE_IDN=no debug=no
MACHINE=x64 RTLIBCFG=static with_ssl=static 成功生成64位的libcurl_a.lib。在两套不同的环境下分别生成x86、x64程序看来是正解了,good,今天又有了一点进步