我有一个简单的控制台应用程序,我已经将其移植到 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/