如何解决.exe 能否使用 v141_xp 构建,但将库构建与“v141 工具集”支持“windows XP”连接起来?
我们的团队正在努力让我们的项目支持 XP。
我们正在使用 visual studio 2017 来构建结果可执行文件。
但是,VCPKG 现在不支持 XP。因此,我们尝试手动构建相关包(例如 yara、spdlog、openssl...)。
在“试错”的过程中,我们发现了一件很奇怪的事情。当我们使用 “v141_xp 工具集” 构建项目,并使用 “v141 工具集”(该 SDK 不支持 XP)链接构建的库时。
生成的可执行二进制文件在 Windows XP 中运行良好。
- 示例:
#include <iostream>
#include <spdlog/spdlog.h>
int main()
{
spdlog::info("spd go");
std::cout << "Hello World!\n";
}
然后在 windows XP 中运行 "example.exe",它可以正常工作,不会弹出任何错误窗口。
这是一个简单的例子,可以帮助我更轻松地解释情况。事实上,我们已经尝试了所有与包相关的示例代码,使用相同的方法。
看来我们不需要再次使用“v141_xp”重新构建包。
这是我的问题:
- 真的安全吗?它会导致一些潜在的问题吗?
我们使用 v141_xp(SDK 7.1A) 编译我们的应用程序,使用 v141(SDK 8.1) 链接库构建。
-
"v141" 和 "v141_xp" 有什么区别?从我们的实验来看,两者都可以在XP上运行。看起来几乎没有区别。
(我们使用 v141 构建在 XP 中运行的 .exe 构建,链接时带有额外的标志 /subsystem:console,5.01。)
这种奇怪的行为让我很困惑。非常感谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。