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?

Я не хочу компилировать и генерировать выходной файл, а затем выполнять исполняемый файл.

1 ответ

Мой вопрос к вам, ребята, есть ли способ просто создать / выполнить код в doSomething.m?

Конечно. Напишите сценарий сборки. Очень часто проекты любого размера включают make-файл или какой-либо другой сценарий, который выполняет все шаги, необходимые для сборки проекта, часто с различными параметрами для сборки для разных целей или с разными параметрами. Сценарии - отличный способ упростить повторяющиеся операции, и это правильный способ справиться с повторяющейся задачей, с которой вы сталкиваетесь. Если у вас много таких однофайловых проектов, вы можете сделать так, чтобы сценарий принимал имя исходного файла в качестве параметра.

В вашем сценарии не должно быть ничего необычного: просто перечислите команды, которые вы обычно выполняете в текстовом файле с префиксом #!/bin/sh (или любой другой вашей любимой оболочки), например:

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

Затем сделайте свой скрипт исполняемым, и все готово.

Я не хочу компилировать и генерировать выходной файл, а затем выполнять исполняемый файл.

Другой вариант - создать проект Xcode с целью для вашего doSomethingтовар. Это довольно типичный способ работы разработчиков, работающих в обычном режиме итеративного редактирования-компиляции-запуска.

Другие вопросы по тегам