.out - необычное расширение. Обычно это обычно означает файл «трассировки».
Проверьте синтаксис, который вы используете для компиляции
например
gcc myfile.c /usr/lib/libsomelibrary.a -o outputfilename
или, может быть
g++ myfile.cpp -lm -o outputfilename
Вы можете проверить, установлен ли исполняемый бит в файле
ls -l a.out
или вы можете просто заставить исполняемый бит
chmod +x a.out
тогда вы можете запустить свой файл
./a.out
или просто
a.out
Возможно, вам также следует проверить, что выходной файл записан правильно в виде двоичного файла.
т.е.
file a.out
Это сообщит, в каком формате находится файл - либо скрипт, либо двоичный файл.
Вам редко нужно запускать с правами root, если вы не ограничены, кто должен иметь возможность запускать исполняемый файл.
Если вы скомпилировали от имени пользователя root (например, sudo make), или у вас есть Makefile, который установил исполняемый файл от имени пользователя root, тогда я могу предложить вам восстановить разрешение, когда пользователь вошел
т.е.
sudo chown fred:fred a.out
т.е. замените "Фред" на ваш идентификатор пользователя.