【问题标题】:How can I build a solution with vc142 and not vc141如何使用 vc142 而不是 vc141 构建解决方案
【发布时间】:2020-01-04 05:36:02
【问题描述】:

我正在尝试使用 Visual Studio 2019 构建 wxsqlite3,当然它使用平台工具集 vc142。我的 wxWidgets 版本是 3.1.2,我已经使用 vc142 成功构建了它。

不幸的是我不断收到错误

D:\cpp\wxWidgets-3.1.2\include\msvc\wx\setup.h(125,10):错误 C1083: 无法打开包含文件: '../../../lib/vc141_x64_dll/mswud/wx/setup.h':没有这样的文件或 目录

如何使用 v142 构建这个 wxsqlite3,以便我可以停止出现这种错误?

【问题讨论】:

  • 您可能需要在安装 VS-2019 后重新安装 wxsqlite3(以便它设置正确的包含/库路径)。
  • 没有3.1.2版本,你说的是3.2.1吗?它很旧,当前版本是4.4.5,本月发布。取得成功的最明显方式。
  • OP在这里所说的版本是wxWidgets的版本

标签: visual-studio wxwidgets


【解决方案1】:

在 wxWidgets 3.1.2 发布时,wxWidgets 还不支持 VS2019 的自动库/DLL 加载机制,并错误地引用了 VS2017 的包含路径。这已在 wxWidgets git 存储库中修复。在文件 include/msvc/wx/setup.h 中修改了第 68 行并添加了第 70 和 71 行。你必须相应地调整你的 wxWidgets 安装。

但是,由于 wxWidgets 不为 VS2019 提供预构建的二进制文件,我假设您自己构建了 wxWidgets 库。并且可能您没有使用编译器特定的前缀。也就是说,在您的安装中,库路径 ../../../lib/vc142_x64_dll 很可能根本不存在;相反,您在 ../../../lib/vc_x64_dll 中有 wxWidgets 链接库。

如果是这种情况,您必须调整 wxSQLite3 发行版的文件夹 build 中的属性文件 wx_setup.props。查找属性 wxCompilerPrefix 和 wxMsvcVersionAuto 并进行如下调整:

<wxCompilerPrefix>vc</wxCompilerPrefix>

<wxMsvcVersionAuto></wxMsvcVersionAuto>

b 我测试了最新的 wxSQLite3 版本的 VS2019 构建文件,没有任何问题。也就是说,原则上 wxSQLite3 构建文件应该开箱即用。但是,可能需要修改 wx_setup.props 以匹配您的安装。 此后,VS2019 版本应该适合您。

但是下次如果您在wxSqlite3's Issue tracker 的一个地方提出问题可能会很好。

【讨论】:

  • 感谢这真的解决了我的头痛。有很多事情我没有考虑到
  • 当然,我可以引用我给this issue on the issue tracker of wxSQLite3 的答案,但是你为什么不将人们指向wxSQLite3's issue tracker,这肯定是询问wxSQLite3 相关问题的最佳地点?
  • 感谢您的提醒,但我添加了一些信息,因为此处的 OP 恰好与您的问题跟踪器上的相同。看起来他是在那儿发帖后才在这里发帖的,担心他可能会在那里等待更长时间才能得到您的答复。
  • 我的猜测是这个问题首先是在这里提出的,稍后在 wxSQLite3 问题跟踪器上提出。对于后者,我在一个小时左右的时间内做出了回应。我的反应并不总是那么快,但通常我反应很快。
【解决方案2】:

这是一个 hack,但由于 MSVS 2017 和 2019 与 ABI 兼容(这就是它们使用工具集版本 141 和 142,而不是 15 和 16 的原因),您只需从 vc141_x64_dll 创建一个链接即可逃脱到vc142_x64_dll 使用例如junction 工具。

当然,使用相同的编译器和选项重新构建所有内容会更好、更安全,但如果您不能这样做,无论出于何种原因,上述方法也可以。

【讨论】:

    猜你喜欢
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 2010-12-13
    • 1970-01-01
    • 2011-11-16
    相关资源
    最近更新 更多