【问题标题】:Visual Studio 2019 error when build WxWidgets app for 64 bit version为 64 位版本构建 WxWidgets 应用程序时出现 Visual Studio 2019 错误
【发布时间】:2021-08-15 20:54:17
【问题描述】:

我使用 Visual Studio Community 2019 for Windows 和 WxWidgets 3.1.5。在“VS 2019 的开发人员命令提示符”中,我使用

构建了 WxWidgets
>nmake /f makefile.vc RUNTIME_LIBS=static BUILD=release TARGET_CPU=X86
>nmake /f makefile.vc RUNTIME_LIBS=static BUILD=debug TARGET_CPU=X86
>nmake /f makefile.vc RUNTIME_LIBS=static BUILD=release TARGET_CPU=X64
>nmake /f makefile.vc RUNTIME_LIBS=static BUILD=debug TARGET_CPU=X64

当我尝试使用 /MT 和 x86 调试或发布配置构建应用程序时,我没有错误,但是当我尝试使用 x64 编译器构建应用程序时,调试和发布都会在“types.h "文件:

错误 E1256 __w64 只能以 int、long 和指针类型指定。

我该如何解决?

【问题讨论】:

  • 乍一看,听起来你所有的目标都指向同一个构建的 wxwidgets。
  • 我不知道,实际上我描述了我用来构建 wxwidgets 的命令只是因为我认为它们可能有助于理解和解决问题
  • 更重要的是你如何告诉你的应用 wxwidgets 的位置。
  • 我使用环境变量(WXWIN)
  • 错误应该在“WXWIN\include\wx\types.h”文件的第374行

标签: c++ visual-studio visual-c++ visual-studio-2019 wxwidgets


【解决方案1】:

也许大约 1,30 小时后我发现了问题,我想我可以找到解决方案,问题是 WxWidgets 构建,出于某种我不太了解的原因,应该编译的库在 64 位中编译为 32 位,我不知道这是否是真正的问题,但它可能仍然是其中的一部分。通过一些研究,我发现了一些以前被隐藏的错误消息:"1> C: \ Downloaded_Libraries \ WxWidgets \ wxWidgets-3.1.5_Static \ lib \ vc_x64_lib \ wxmsw31ud_gl.lib: warning LNK4272: the 'x86' type of the library computer conflicts with the 'x64' type of the target computer"

【讨论】:

  • 这个错误信息说x64 lib是在x86中编译的
  • 我不知道这是否是真正的问题是的,这是一个真正的问题。这意味着您正在混合 32 位和 64 位。您不能这样做,因此您需要为您的应用程序使用正确的 wxWidgets 二进制文件。这意味着如果您的应用程序是 32 位的,那么您的 wxWidgets 必须是 32 位的。 x64 也是如此。
  • @drescherjm,我知道,但我以为我已经用 64 位配置构建了 x64 库,但听起来我错了
猜你喜欢
  • 1970-01-01
  • 2020-05-16
  • 2021-04-16
  • 1970-01-01
  • 1970-01-01
  • 2017-08-24
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
相关资源
最近更新 更多