Pro*_*ica 20 c mingw cross-compiling windows-8 windows-store-apps
有没有办法用Mingw工具链构建Windows应用商店应用程序?(并最终在Linux上从mingw 交叉编译它们,因为如果它在一个Mingw工具链中工作,它应该在另一个工作链中工作.)
我想一个要求是坚持 使用Windows应用程序沙盒中允许的API:但是在分发到商店之前还需要考虑其他什么?XAML?32或64位代码?
由于Mingw C++与MSVC++没有链接兼容,我认为没有WRL的普通C程序是实现这一目标的最简单方法吗?
Mar*_*ram 11
您需要直接使用Windows运行时C++模板库(WRL),因为Mingw不支持它,您将无法使用C++/CX.除此之外,我认为您只需要Windows 8 SDK,然后您需要配置Mingw以使用标头和库.此外,您将无法使用XAML来描述您的用户界面,您必须在代码中手动创建UI.
您可以使用mingw编写核心库,然后使用Visual Studio Express(免费)在库上编写一个简单的UI包装器,而不是尝试使用mingw编写整个应用程序并使用linux进行交叉编译.这样你就可以使用所有漂亮的东西,如XAML和ref-counting实例.
这是我采用的方法 - 使用用C++编写的库,然后是一个引用其他库的单独的UI项目(使用XAML).它运作良好.
MinGW-w64 具有对随 VS2013 分发的 UWP C 运行时的实验性支持。与通用 VS2013 crt 链接的 C dll 也可以与 VS2015 和 VS2017 UWP 工具链一起使用(UWP 项目应该具有“Microsoft Visual C++ 2013 Runtime Package for Windows Universal”作为依赖项)。
MinGW-w64 提供了winstorecompat库来用用户定义的实现替换 UWP 平台上的一些禁止的 API 调用。winstorecompat在与系统库链接之前,应该先链接到用户的库。
此外,还需要使用自定义标志构建 MinGW C dll-Wl,--dynamicbase以通过 Windows 10 商店认证工具包安全检查,并设置appcontainer位标志以与 Windows 10 商店二进制要求兼容。
这是链接在示例项目中,我研究了如何将普通 C MinGW Dll 使用到 Windows 10 C# UWP 应用程序中,从 C dll PInvoke 方法并通过将在 Windows 应用商店中发布的认证工具包安全检查。我参考了libVLC WinRT 构建实现。