Вам не хватает имени исполняемого файла. Итак, команда должна выглядеть так:
gcc -o hello helloworld.m
После компиляции введите
./hello
-o hello задает имя выходного файла, который вы хотите создать, скомпилирован. (В этом случае имя выходного файла - hello.) Это создаст исполняемый файл (с именем hello), который вы можете запускать непосредственно с терминала. Если вы не используете параметр -o во время компиляции, по умолчанию имя исполняемого файла будет a.out. Теперь для выполнения этой программы вам нужно ввести
./hello
. Вышеприведенные команды предполагают, что вы уже находитесь в исходных файлах, но как исходный файл, так и целевой выходной файл также могут быть указаны как каталог. Например:
gcc -o ~/Projects/hello ~/Desktop/hello.c
скомпилирует исходный файл C, расположенный на вашем рабочем столе, и поместит исполняемый двоичный файл в папку Projects в вашем домашнем каталоге. Чтобы запустить этот исполняемый файл, введите:
./Projects/hello
Или вы также можете сначала перейти в каталог, в котором находится исходный файл, и выполнить над ними команды. Вам не нужно указывать пути, если вы находитесь в том же каталоге, где находится ваш исходный файл.
Мне интересно, почему расширение вашего файла .m вместо .c.