c++ - 是否可以从 Linux 为 Windows XP 交叉编译 C++ 应用程序?

标签 c++ mingw windows-xp

我有一个简单的控制台应用程序,我已经将其移植到 Windows。我还使用 mingw 交叉编译它。然而问题是这样编译的应用程序只能在 Windows Vista 或更高版本上运行。我该如何使用 Linux 为 XP 编译它?另外,我不知道这是否有必要,但这是我的编译器标志:

x86_64-w64-mingw32-windres src/icon.rc src/icon.o
x86_64-w64-mingw32-g++ -o cli-mg-64bit-windows.exe src/main.cpp src/icon.o -static
i686-w64-mingw32-windres src/icon.rc src/icon.o
i686-w64-mingw32-g++ -o cli-mg-32bit-windows.exe src/main.cpp src/icon.o -static

最佳答案

您似乎使用了使用 configure 标志 --with-default-msvcrt=msvcrt-os-- 构建的 MinGW-w64 版本with-default-win32-winnt=0x0501

这些标志将导致 MinGW-w64 库仅使用 Windows XP 之前可用的 Windows 功能。

有关值列表及其相应的 Windows 版本,请参阅:https://learn.microsoft.com/en-us/cpp/porting/modifying-winver-and-win32-winnt

关于c++ - 是否可以从 Linux 为 Windows XP 交叉编译 C++ 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73123672/

相关文章:

c++ - python函数作为c++暴露类的参数使用::boost::python

c# - 通过 COM 互操作传递 IntPtr

c++ - CMAKE : How to? 中的操作系统特定指令

ruby - 使用 mechanize gem 时出现错误 "getaddrinfo: No such host is known. (Socke tError)"

windows - 在本地用户之间交换数据的正确 Windows 文件夹是什么?

c++ - 以面向对象的方式包装 OpenGL 时出现问题

c++ - 如何在 Visual Studio 中启用 C++17 编译?

audio - 用mingw编译和链接openAL?

c++ - 如何使用 mingw 编译 openexr

php start_session() 不适用于本地主机