我正在尝试使用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,这样我就可以停止得到这种错误了?
发布于 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,并按以下方式调整它们:
<wxCompilerPrefix>vc</wxCompilerPrefix>和
<wxMsvcVersionAuto></wxMsvcVersionAuto>B我测试了最新wxSQLite3版本的wxSQLite3构建文件,没有问题。也就是说,原则上,wxSQLite3构建文件应该立即工作。然而,修改wx_setup.props可能是必要的,以配合您的安装。此后,VS2019构建应该对您起作用。
但是下一次,如果你在wxSqlite3 3问题跟踪器上的一个地方问这个问题,那可能是件好事。
发布于 2019-08-31 12:20:38
这是一次黑客攻击,但由于MSVS 2017和2019是与ABI兼容的(这就是为什么他们使用工具集版本141和142,而不是15和16),您只需使用例如vc141_x64_dll工具创建一个从vc142_x64_dll到junction的链接就可以了。
当然,使用相同的编译器和选项重新构建所有东西都是更好、更安全的,但是如果您不能这样做,无论出于什么原因,上述方法也会工作。
https://stackoverflow.com/questions/57735638
复制相似问题