首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ubuntu试图在桌面上而不是设备上运行基于CMake的ARM项目: bug还是什么?

Ubuntu试图在桌面上而不是设备上运行基于CMake的ARM项目: bug还是什么?
EN

Ask Ubuntu用户
提问于 2016-03-28 20:59:10
回答 2查看 384关注 0票数 1

我已经将基于CMake的项目导入到Ubuntu中。它使用没有QML组件的普通C++。当我尝试运行它时,它不会部署到设备上,而是在桌面上运行(失败,报告它找不到armhf库),即使我选择了armhf和“工具包”选项卡,我的设备被选择为当前的工具包,左下角的工具提示显示应用程序将安装在设备上。

当我在项目设置中打开Run选项卡时,基于CMake的项目与基于QMake的项目的不同之处在于它有“命令行参数”和“当前工作目录”字段,但不“如果安装了重写应用程序”和“调试后卸载应用程序”(我现在不记得确切的文本)。由此,我得出结论,Ubuntu将我的应用程序视为桌面目标而不是Ubuntu。什么标志着一个基于CMake的项目作为Ubuntu目标的fomr?

有没有可能在设备上不使用QML运行基于CMake的项目?SDK没有此用例的模板:所有基于CMake的模板都使用QML,唯一的普通C++项目(QtQuick应用程序)使用QMake。

我在基于QMake的项目中没有这样的问题,目前我使用CMake来构建一个库,而不是可执行文件,然后将它与虚拟QMake项目链接到可执行文件中。但这似乎是个骗局。

EN

回答 2

Ask Ubuntu用户

发布于 2016-03-30 17:22:40

好的,如果您正在使用桌面工具包,而cmake抱怨它找不到armhf工具,那么您可能一开始就没有在桌面上安装cmake (我们试图解决的依赖项存在一个问题),而且QtCreator正在使用您为设备支持而创建的单击色度之一的cmake安装。

那么该怎么做呢:

  • 关闭Ubuntu
  • 安装cmake“apt Install cmake”
  • 启动Ubuntu
  • 转到: Options -> Build & Run,然后单击CMake选项卡
  • 确保选择/usr/bin/cmake作为默认值
  • 打开“工具包”选项卡,在那里选择桌面工具包,并确保使用/usr/bin/cmake作为cmake工具。
  • 删除项目的构建文件夹,然后再次生成

没有必要更改设备的工具包,因为这些设备在每次启动时都会自动检查。

如果您想要打包您自己的cmake项目,您需要确保它为电话正确打包。最好的方法是查看一个原始的ubuntu模板,看看它是如何完成的。

票数 0
EN

Ask Ubuntu用户

发布于 2016-04-02 15:29:02

好吧,经过大量的实验,我发现我做错了什么。

因此,要使Ubuntu创建一个在设备上运行基于CMake的项目的配置,您只需要在UBUNTU_MANIFEST_FILE中设置CMakeLists.txt变量,并且它需要在内部显式地标记缓存。当您知道Ubuntu QtCreator插件的工作原理时,这是很明显的,但否则就不那么明显了。

所以,只要加上

代码语言:javascript
复制
set(UBUNTU_MANIFEST_PATH "manifest.json" CACHE INTERNAL "Path to manifest file")

给你的CMakeLists.txt,你就快好了。

但是,我也遇到了一个问题,如果我将"${CMAKE_SOURCE_DIR}/manifest.json“指定为UBUNTU_MANIFEST_PATH,则这将无法工作,即使文件就在那里。

糟糕的是,Ubuntu仍然会为项目创建两个运行配置。第一个是默认的,它的名称基于可执行目标的名称,它仍然尝试在桌面上运行armhf代码。我觉得是个虫子。

第二个名称取决于您在.desktop文件的“钩子”部分所写的内容。如果该名称等于可执行名称,那么该配置将添加"2“(即cmake_test2)。第二种配置是要使用的--它在设备上运行项目,但您必须在"Projects“页面的" run”部分中选择它--默认情况下,会选择错误的运行配置。

总之,Ubuntu中的CMake支持似乎仍然有些脆弱/错误。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/751223

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档