.out é uma extensão incomum. Normalmente, isso normalmente significa um arquivo de "saída de rastreamento".
Verifique sua sintaxe que você está usando para compilar
por exemplo
gcc myfile.c /usr/lib/libsomelibrary.a -o outputfilename
ou talvez
g++ myfile.cpp -lm -o outputfilename
Você pode examinar para ver se o bit executável está definido no arquivo
ls -l a.out
ou você pode apenas forçar o bit executável
chmod +x a.out
então você pode executar seu arquivo
./a.out
ou simplesmente
a.out
Você também deve verificar se o arquivo de saída foi gravado corretamente como um arquivo binário.
ie
file a.out
Isso informará qual o formato do arquivo - um script ou um binário
Você raramente precisa executar como root, a menos que tenha restringido quem deve executar o executável.
Se você compilou como root (por exemplo, sudo make) ou possui um Makefile que instalou o executável como root, posso sugerir que você recupere a permissão à medida que o usuário efetuou login
ie
sudo chown fred:fred a.out
ou seja, substitua "fred" pelo seu ID de usuário.