如何在QtCreator中使用CMake构建Android/iOS项目

8
我已经使用Qt创建了一个非Qt的C++(CMake)项目,并且能够使用MinGW、MSVC编译器构建它。
简而言之,在打开测试项目时,我可以在“运行CMake窗口”下选择生成器。但我在其他平台上遇到了问题。
当我尝试为Android添加工具包时,列表中没有可用的生成器。我在Macbook上尝试了相同的操作,也遇到了同样的问题。
我需要在这个问题上得到帮助,因为我无法找到正确的步骤来使用QtCreator构建基于CMake的Android/iOS项目。
附注:安装的CMake版本为3.2.1,Qt版本为5.5,我已经安装了Android SDK、NDK和Java。
1个回答

6
很遗憾,我无法像“只需在选项对话框中勾选该框,它就会起作用”那样告诉您,因为没有生成器可供使用来从CMakeLists.txt文件构建Android/iOS项目。我找到了替代方案,在所有情况下,我认为你没有机会在几天内将一个巨大的基于CMake的项目(包含许多库和第三方库)从Windows移植到Android,并使其工作...;-)
  • 个人而言,我编写了一个小的CMake函数,从我的CMake脚本手动生成.pro文件。它一开始很小,但现在变得非常庞大,很难与您分享。但是,基本上,我从Qt论坛的this post开始。它创建了一个简单的.pro文件,效果还不错,然后您可以根据自己的需要进行扩展。我喜欢这种解决方案,因为我可以完全控制生成的.pro文件(我的文件现在可以在PC、Android和iOS上构建......但我花了很长时间才能使其完全工作)。

  • 显然,也有一种方法可以使用这个开源工具添加Qt-android CMake支持: https://github.com/LaurentGomila/qt-android-cmake。但我从未尝试过。你可能想看看它。如果它有效,那么它可能比编写自己的脚本生成.pro文件更方便。显然,它使用androidqtdeploy构建Android apk,但不使用QtCreator。还有iOS支持。

  • 最后,最好的方法可能是让CMake提供一个QtCreator“生成器”(它将生成.pro文件,就像CMake在使用Visual Studio生成器时生成sln/vcproj文件或g++生成器的makefile一样...),但目前没有支持这样的生成器。我一段时间前向CMake团队报告了这个问题,希望他们能解决这个问题。我明白,他们没有计划去做这件事,因为CMake只针对“编译器”作为“生成器”,而“QtCreator”并不是真正的“编译器”,它是一个使用外部“编译器”构建(MinGW、MSVC、CLang、Android的NDK g++等)的“IDE”。这很遗憾,因为CMake知道所有项目信息,并且可以轻松地生成.pro文件......所以,由于CMake是开源的,可以扩展CMake与自定义的QtCreator文件生成器......并与全世界分享,这将是美妙的!

希望这能对您有所帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接