Как запустить самоскомпилированную программу в Unix / Linux? - PullRequest
1 голос
/ 10 сентября 2009

Привет, у меня есть следующая программа. Когда я компилирую на терминале gcc main.c, я получаю исполняемый файл с именем a.out. Однако, если я наберу a.out в терминале, я получу следующее сообщение: a.out: команда не найдена

Есть идеи, что я могу делать не так?

#include <stdio.h>
#include <stdlib.h>

#define PROMPT "print something"
/*
 * 
 */
int main() {

    printf("CS-xxx Assignment x, xxxxx\n");

    printf(PROMPT);

    return (EXIT_SUCCESS);

}

Ответы [ 7 ]

12 голосов
/ 10 сентября 2009

Предполагается, что вы используете систему на основе Unix, обычно "." не в пути Итак, попробуйте ./a.out

4 голосов
/ 10 сентября 2009

Попробуйте использовать

./a.out

Большинство систем Linux не будут искать в текущем каталоге исполняемые файлы, поэтому вам нужно указать, чтобы они смотрели в текущем каталоге.

1 голос
/ 10 сентября 2009

Использование

. / A.out

Вы должны запустить программу, указав текущий каталог.

1 голос
/ 10 сентября 2009

У вас может не быть "." (текущий каталог) в переменной среды PATH.

Попробуйте запустить "./a.out" или добавить "." в ваш путь.

0 голосов
/ 15 декабря 2012

Используйте ./a.out теперь вы можете выполнить свой исполняемый файл. Это ./ в основном обозначает поиск в текущем каталоге.

Думаю, теперь вы получаете то, что должны.

0 голосов
/ 23 апреля 2012

Необходимо запустить все программы оболочки c, c ++, указав путь к каталогу в семействе unix символ ./ должен указывать текущий каталог.

Примеры: ./kernel (ядро elf находится в текущем каталоге) ../kernel (ядро elf находится в родительском каталоге текущего каталога) childdir / kernel (ядро elf находится в дочернем каталоге текущего каталога)

0 голосов
/ 10 сентября 2009

Просто введите ./a.out и все должно работать. Проблема без ./ оболочка думает, что вы вводите команду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...