使cURL在64位计算机上与Visual Studios 2017 32位一起使用

时间:2018-10-13 04:07:30

标签: c++ curl x86 visual-studio-2017 32bit-64bit

运行Windows 7 64位(Intel i5 64位)。

我记得为32位设置了Visual Studio 2017社区。

(我认为这将使我的应用程序具有向后兼容性,并且还可以在64位计算机上运行,​​这可能是一个错误的假设?)。

无论如何,要确认,高级链接器设置的目标是x86 ...,而构建配置的目标是32bit x86。

我的应用程序(带有Boost的C ++)已经编译并且运行良好。

现在,我正在尝试添加cURL,但效果却不太理想。

尝试将cURL编译为32位的步骤:

  • c:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ VC \ Auxiliary \ Build> vcvarsall.bat x86
  • nmake / f Makefile.vc mode = static MACHINE = x86

(也尝试将静态C CRT与RTLIBCFG = static链接,没有区别)

  • 其他包含目录:添加到/ include目录的路径

  • 预处理程序定义:添加了CURL_STATICLIB

  • 其他库目录:添加到/ lib的路径
  • 其他依赖项:添加了libcurl_a.lib

此示例中的cURL函数已链接:

CURL *curl = curl_easy_init();
if (curl) printf("curl_easy_init() succeeded!\n");
else fprintf(stderr, "Error calling curl_easy_init().\n");
return 0;

但是在编译的最后”

fatal error LNK1112: module machine type 'x86' conflicts with target machine type 'x64'

VCTargets\Microsoft.CppCommon.targets(720,5): error MSB6006: "link.exe" exited with code 1112.

更新: 尝试以下链接后,链接器高级设置未设置回x86,真正的错误是:

fatal error LNK1120: 60 unresolved externals

它们看起来都是这样,但是对于每个引用的目标文件:

  

libcurl_a.lib(easy.obj):错误LNK2019

(仅供参考,我确实尝试过这些操作,并构建了cURL,就像我瞄准的是x64,但是在链接过程中,这些函数(在示例代码中)无法解析。)

Getting cURL to work with Visual Studios 2017

Getting LibCurl to work with Visual Studio 2013

0 个答案:

没有答案