首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用vc142而不是vc141构建解决方案?

如何使用vc142而不是vc141构建解决方案?
EN

Stack Overflow用户
提问于 2019-08-31 06:14:02
回答 2查看 1.1K关注 0票数 0

我正在尝试使用VisualStudio2019构建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':没有这样的文件或目录

如何用wxsqlite3构建这个v142,这样我就可以停止得到这种错误了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-31 15:04:58

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

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

如果是这种情况,则必须在wx_setup.props发行版的文件夹构建中调整属性文件wxSQLite3。查找属性wxCompilerPrefix和wxMsvcVersionAuto,并按以下方式调整它们:

代码语言:javascript
复制
<wxCompilerPrefix>vc</wxCompilerPrefix>

代码语言:javascript
复制
<wxMsvcVersionAuto></wxMsvcVersionAuto>

B我测试了最新wxSQLite3版本的wxSQLite3构建文件,没有问题。也就是说,原则上,wxSQLite3构建文件应该立即工作。然而,修改wx_setup.props可能是必要的,以配合您的安装。此后,VS2019构建应该对您起作用。

但是下一次,如果你在wxSqlite3 3问题跟踪器上的一个地方问这个问题,那可能是件好事。

票数 1
EN

Stack Overflow用户

发布于 2019-08-31 12:20:38

这是一次黑客攻击,但由于MSVS 2017和2019是与ABI兼容的(这就是为什么他们使用工具集版本141和142,而不是15和16),您只需使用例如vc141_x64_dll工具创建一个从vc142_x64_dlljunction的链接就可以了。

当然,使用相同的编译器和选项重新构建所有东西都是更好、更安全的,但是如果您不能这样做,无论出于什么原因,上述方法也会工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57735638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档