与其试图使用 Mingw 编写整个应用程序并在 Linux 上进行交叉编译,您可以使用 Mingw 编写核心库,然后使用 Visual Studio Express(免费版本)编写简单的 UI 包装器。这样,您可以使用所有好用的东西,如 XAML 和引用计数实例。
这就是我的做法——编写用 C++ 编写的库,然后编写一个单独的 UI 项目(使用 XAML)来引用其他库。它运行良好。
winstorecompat
库,用于在UWP平台上替换某些被禁止的API调用为用户定义的实现。在链接到系统库之前,winstorecompat
应该被链接到用户的库中。-Wl,--dynamicbase
构建MinGW C dll以通过Windows 10 Store认证工具的安全检查,并设置appcontainer
位标志以与Windows 10 Store二进制要求兼容。使用clang编译器而非MinGW来使用C++/WinRT:
https://github.com/Microsoft/cppwinrt
https://moderncpp.com/
"C++/WinRT是一个标准的C++语言投影,仅通过头文件实现Windows Runtime。它允许您使用任何符合标准的C++编译器编写和消费Windows Runtime API."
"C++/WinRT依赖于C++17语言特性,因此您需要告诉C++,您的项目需要使用C++17语言标准。"
"虽然Visual C++仍然是我们的主要目标,但我们使用Clang作为我们的次要编译器以确保标准符合性。在这个更新中,进行了许多小的更改来支持Clang构建并修复仅在Clang构建中发现的正确性错误。"
aptitude
安装了两个缺失的依赖项后,这个程序对我来说基本上是开箱即用的。 - Damon