ios - Xcode:Objective-C 从命令行构建和运行
问题描述
我有以下文件:
doSomething.m
通过以下实现:
#import <Foundation/Foundation.h>
int main(int argc, char * argv[]) {
NSString * appDelegateClassName;
@autoreleasepool {
NSLog(@"main");
}
return 0;
}
如果我想编译我需要运行以下命令:
clang -framework Foundation doSomething.m -o doSomething-exec
并查看任何输出,我需要执行以下命令:
./doSomething-exec
我对你们的问题有一种方法可以构建/执行doSomething.m
?
我不想编译和生成输出文件,然后执行可执行文件。
解决方案
我对你们的问题有一种方法可以构建/执行 doSomething.m 中的代码吗?
当然。编写构建脚本。对于任何规模的项目来说,包含一个 make 文件或其他类型的脚本来处理构建项目所需的所有步骤是很常见的,通常带有用于构建不同目标或具有不同选项的各种参数。脚本是简化重复性操作的好方法,也是处理您面临的重复性任务的正确方法。如果你有很多这样的单文件项目,你可以让脚本将源文件的名称作为参数。
您的脚本不必很花哨:只需列出您通常在文本文件中发出的命令,前缀为#!/bin/sh
(或任何您喜欢的 shell),例如:
#!/bin/sh
clang -framework Foundation doSomething.m -o doSomething-exec
./doSomething-exec
然后让你的脚本可执行,你就可以开始了。
我不想编译和生成输出文件,然后执行可执行文件。
另一种选择是为您的doSomething
产品创建一个带有目标的 Xcode 项目。对于以通常的迭代编辑-编译-运行方式工作的开发人员来说,这是一种非常典型的作案手法。
推荐阅读
- python - 嗅探scapy中的URL和参数
- php - 如何正确调用ajax数据
- javascript - 为什么 JSON.parse 失败,而 eval() 像魅力一样工作?
- javascript - Javascript 正则表达式
- windows - IOCP 读取文件的竞争条件
- java - AtomicInteger 与同步块
- javascript - PHP变量在Javascript中返回空白
- ruby-on-rails - Rails 重定向以编辑路径与应用程序控制器中的值错误
- python - 如果我使用 Anaconda Navigator,如何安装 GeckoDriver?
- python - Upsert-使用 pyMongo 更新文档的多个字段,包括列表和嵌套列表