【问题标题】:Which is the easiest way to migrate a C++ application for Android and iOS?为 Android 和 iOS 迁移 C++ 应用程序的最简单方法是什么?
【发布时间】:2015-11-29 12:38:52
【问题描述】:

我有一个使用 Qt 4.8 和 OpenCV 2.4.2 的 C++ 应用程序。它是使用 Visual Studio 开发的。我必须为 Android 和 iOS 迁移这个应用程序。 遵循的计划是什么?我应该对现有代码做最小的改动。

【问题讨论】:

    标签: android c++ ios visual-studio cross-platform


    【解决方案1】:

    不幸的是,这个问题没有简单的答案。您使用 Qt 是一个很好的开始,并且尽可能多地使用它将大大有助于使您的代码从 Windows 移植到其他操作系统。

    我会先考虑升级到 Qt 5,因为 Qt 引入了对 iOS 和 Android 的强大支持。

    在那之后,构建链将成为您的下一个障碍。看起来 Qt Visual Studio 插件有一个从 VC++ 项目中导出 .pri 文件的选项,这将是一个非常方便的起点。生成 .pri 文件并将其与 QtCreator 为 Android 和 iOS 应用程序创建的项目文件进行比较,并尝试将特定于移动设备的部分复制到生成的 .pri 文件中。

    其他潜在的陷阱是:

    • Visual C++ 是比 gcc (Android) 或 Clang(iOS 和 Android)更宽松的编译器
    • 您的应用程序的依赖项也必须是跨平台的。我确定 OpenCV 是,但需要牢记这一点
    • 在 iOS 上,所有库都必须静态链接

    【讨论】:

    • 非常感谢。内容丰富!我有一个小问题:我在我的应用程序中使用了许多不使用 Qt 或 OpenCV 的 C++ 库(其中一些我有要编译的源代码,而另一些我只有在 Visual Studio 中编译的 dll)。如何将它们移植到 Android 和 iOS?我做了一项研究,发现 Visual Studio 可以为它们编译共享的 C++ 库,但我不知道这种方法的可行性。这些库实际上是迁移过程中的最大障碍。
    • 再一次,这在很大程度上取决于您使用的库,以及它们与其他平台的兼容性。 Visual Studio - IDE - 具有一些针对 Android 和 iOS 的编译功能,但它仍将使用特定于平台的编译器 (LLVM/clang) 而不是 Visual C++ 编译器,并且需要包含并链接到特定于平台的头文件和库。因此,Visual Studio 是前端这一事实对您的帮助很小。
    猜你喜欢
    • 1970-01-01
    • 2021-09-17
    • 2023-03-08
    • 2010-12-03
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多