MacOS:使用纯C++创建一个简单的MacAPP的Demo(可以双击运行的那种)

发布时间:2026/9/9 12:28:08
MacOS:使用纯C++创建一个简单的MacAPP的Demo(可以双击运行的那种) MacOS使用纯C创建一个简单的MacAPP的Demo(可以双击运行的那种)有没有想过Mac上那些app是怎么做出来的里面都包含了什么东西今天就来做一个最简单的Mac APP。背景Mac的app安装方式就是把xx.app拖拽到/Applications目录下且/Applications目录下有很多文件夹(对应着一个个的软件)。每个xx.app其实都是一个文件夹里面有可执行文件、资源、元信息等只是Mac把这种特殊的文件夹显示为应用图标并且在你双击这种文件夹的时候直接按照元信息运行其中的可执行程序罢了。超小的.app制作新建一个空的文件夹如“testMacAPP”进入这个文件夹创建一个main.cpp并写入如下内容#includecstdlibintmain(){system(osascript -e tell application \Terminal\ to activate);system(osascript -e tell application \Terminal\ to do script \echo Hello from C App; read\);return0;}在此文件夹下创建Hello.app/Contents/MacOS子文件夹编译上述cpp源码并将可执行程序放到Hello.app/Contents/MacOS文件夹下clang main.cpp-oHello.app/Contents/MacOS/Hello接下来在Hello.app/Contents文件夹下创建Info.plist文件并写入以下内容?xml version1.0 encodingUTF-8?plistversion1.0dictkeyCFBundleExecutable/keystringHello/stringkeyCFBundleIdentifier/keystringxyz.letmefly.example.simpleapp.hello/stringkeyCFBundleName/keystringLets Hello/string/dict/plist然后你的app就做好了。最终结构如下testMacAPP ├── Hello.app │ └── Contents │ ├── Info.plist │ └── MacOS │ └── Hello └── main.cpp这个Hello.app文件夹就是一个可以双击运行的Mac app。现在打开testMacApp文件夹可以看到Hello.app不是一个普通文件夹的图标而是一个默认应用的图标。双击这个应用会弹出弹窗问是否允许这个应用控制“终端”点击允许后重新运行下这个应用可以看到弹出了一个终端上面有如下类似的字样echoHello from C App;read➜ ~echoHello from C App;readHello from C App等你随便输入一些东西并按下回车后将会变成一个普通的终端。小app一键生成脚本也可以运行下面的脚本一键生成mkdir-pHello.app/Contents/MacOScatmain.cppEOF #include cstdlib int main() { system(osascript -e tell application \Terminal\ to activate); system(osascript -e tell application \Terminal\ to do script \echo Hello from C App; read\); return 0; } EOFclang main.cpp-oHello.app/Contents/MacOS/Hellochmodx Hello.app/Contents/MacOS/HellocatHello.app/Contents/Info.plistEOF ?xml version1.0 encodingUTF-8? plist version1.0 dict keyCFBundleExecutable/key stringHello/string keyCFBundleIdentifier/key stringxyz.letmefly.example.simpleapp.hello/string keyCFBundleName/key stringLets Hello/string /dict /plist EOFThe EndThe End, Thanks!同步发文于CSDN和我的个人博客原创不易转载经作者同意后请附上原文链接哦~千篇源码题解已开源

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询