首页 > 解决方案 > 让 cURL 在 64 位机器上与 Visual Studios 2017 32 位一起工作

问题描述

运行 Windows 7 64 位(英特尔 i5 64 位)。

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

(我认为这会给我的应用程序向后兼容性并且还可以在 64 位机器上运行,这可能是一个错误的假设?)。

无论如何,要确认,高级链接器设置针对 x86... 以及针对 32 位 x86 的构建配置。

我的应用程序(带有 Boost 的 C++)一直在编译并运行良好。

现在我正在尝试添加 cURL 但看起来不太好。

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

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

此示例中的 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,但函数(在示例代码中)在链接期间无法解析。)

让 cURL 与 Visual Studios 2017 一起工作

让 LibCurl 与 Visual Studio 2013 一起工作

标签: c++curlx86visual-studio-201732bit-64bit

解决方案


推荐阅读