首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在查找器和终端中运行应用程序的macOS差异?

在查找器和终端中运行应用程序的macOS差异?
EN

Stack Overflow用户
提问于 2019-04-09 18:45:58
回答 1查看 228关注 0票数 0

我正在使用Qt开发一个C++应用程序。当我查看Finder时,我看到的输出如下:

代码语言:javascript
运行
复制
    build-XMLMPAM-Desktop_Qt_5_11_2_clang_64bit-Debug

此文件夹包含对象文件"moc“cpp文件。在查找器中,我看到了应用程序:

代码语言:javascript
运行
复制
    XMLMPAM.app

虽然我可以启动这个从Finder,当我打开一个终端,这实际上是一个文件夹。包含文件和子文件夹。

为了从终端启动应用程序,我必须输入:

代码语言:javascript
运行
复制
    ~/build-XMLMPAM-Desktop_Qt_5_11_2_clang_64bit-Debug/XMLMPAM.app/Contents/MacOS/XMLMPAM

从申请中,我报告了CWD:

从终端或Qt调试器启动时:

代码语言:javascript
运行
复制
    CWD:  /Users/Simon/build-XMLMPAM-Desktop_Qt_5_11_2_clang_64bit-Debug/XMLMPAM.app/Contents/MacOS

从Finder发射时:

代码语言:javascript
运行
复制
    CWD:  /

我被这弄糊涂了,怎么回事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-09 19:30:36

XMLMPAM.app这样的XMLMPAM.app应用程序确实是一个文件夹。用苹果的术语来说,它被称为捆绑。它是一个具有某种结构的目录,操作系统和其他实用程序可以识别它。实际的可执行程序文件位于包的Content/MacOS子文件夹中。这就是Finder定位它的地方。Finder假装它是一个内聚的“文件”,但您也可以通过右键单击和“显示包内容”进入包内。

如果要从终端模拟Finder行为,请运行open XMLMPAM.appopen -a XMLMPAM

如果您想获取包的路径,或者其中的任何文件,您可以使用NSBundle类的方法。例如:NSBundle.mainBundle.executableURL.path应该为您的应用程序的可执行文件提供完整的路径。

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

https://stackoverflow.com/questions/55599363

复制
相关文章

相似问题

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