Objective- C не печатает (NSLog и PrintF НЕ РАБОТАЮТ!) - PullRequest
0 голосов
/ 11 марта 2020

Я искал часы, пробовал более 20 файлов и каждый раз работал в Xcode или через терминал. Никто не представит какой-либо вывод. Я перезапустил терминал и перезагрузил компьютер. Все еще не повезло. На данный момент я абсолютно не знаю, что происходит.

#import <Foundation/Foundation.h>

int main(int argc, char** argv)
{
  NSLog(@"Testing\n");
  printf("Hello\n");
}

В терминале

gcc -framework Foundation hello.m -o

или

clang -framework Foundation hello.m -o

НИКАКОЙ РАБОТЫ!

Я мог набрать другой Я попробовал 50, но давайте начнем очень просто. После запуска нет вывода на консоль. Смущенный как ад. Везде показывает вывод, я пытался переключить компьютеры и запустить его, тоже самое. Что, черт возьми, вы устанавливаете или делаете, чтобы включить выход из системы для Objective- C. Никакие учебники или где-либо еще не покрывают это.

enter image description here

Нада напечатано.

1 Ответ

1 голос
/ 11 марта 2020

Вы только компилируете файл и не сохраняете результат. Параметр -o предназначен для вывода записи, и поскольку вы не предоставляете имя файла, компилятор просто игнорирует результат и не сохраняет его. Для его запуска используйте следующие команды:

clang -framework Foundation hello.m -o test
./test

или, как ярлык,

clang -framework Foundation hello.m -o test && ./test

Как видите, теперь мы указываем имя для выходного файла как test и затем выполните это. Теперь вы сможете увидеть вывод.

Также имейте в виду, что NSLog больше не печатает в stdout и перенаправляет все сообщения в подсистему OSLog. Вы можете проверить такие журналы в Console.app. Проверьте сеанс Unified Logging and Activity Tracing WWD C, если хотите узнать больше.

...