首页 > 解决方案 > 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?

我不想编译和生成输出文件,然后执行可执行文件。

标签: iosobjective-cxcode-command-line-toolsxcode11.2.1

解决方案


我对你们的问题有一种方法可以构建/执行 doSomething.m 中的代码吗?

当然。编写构建脚本。对于任何规模的项目来说,包含一个 make 文件或其他类型的脚本来处理构建项目所需的所有步骤是很常见的,通常带有用于构建不同目标或具有不同选项的各种参数。脚本是简化重复性操作的好方法,也是处理您面临的重复性任务的正确方法。如果你有很多这样的单文件项目,你可以让脚本将源文件的名称作为参数。

您的脚本不必很花哨:只需列出您通常在文本文件中发出的命令,前缀为#!/bin/sh(或任何您喜欢的 shell),例如:

#!/bin/sh
clang -framework Foundation doSomething.m -o doSomething-exec
./doSomething-exec

然后让你的脚本可执行,你就可以开始了。

我不想编译和生成输出文件,然后执行可执行文件。

另一种选择是为您的doSomething产品创建一个带有目标的 Xcode 项目。对于以通常的迭代编辑-编译-运行方式工作的开发人员来说,这是一种非常典型的作案手法。


推荐阅读