Компиляция программы в другой программе с использованием gcc - PullRequest
3 голосов
/ 14 ноября 2009

Из командной строки я получаю имя файла, которое мне нужно скомпилировать с помощью gcc. скажем так:

./a.out fileToBeCompiled.c

Тогда как я могу скомпилировать этот файл, используя gcc в моей программе? скажем, main.c, для которого делается a.out.

Ответы [ 5 ]

6 голосов
/ 14 ноября 2009

Просто запустите gcc из вашей программы.

int main(int argc, char** argv)
{
   execv("/usr/bin/gcc", argv);
}
2 голосов
/ 14 ноября 2009

Узнайте, как позвонить fork(), exec() и wait(). Вы, вероятно, хотите использовать execv() для этой цели.

2 голосов
/ 14 ноября 2009

Вы всегда можете вызвать gcc для компиляции из команды выполнения оболочки в вашей программе.

Ссылка на системную функцию.

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

Просто, вы можете использовать функцию "system" (определенную внутри stdio.h) для выполнения команды unix внутри программ на c, c ++.

Например: я собираюсь скомпилировать sub.c внутри main.c

void main(void)
{
  system("cc sub.c -o sub");
}

Вы можете указать динамические файлы ввода и вывода.

0 голосов
/ 14 ноября 2009
./a.out fileToBeCompiled.c && gcc fileToBeCompiled.c

Если ./a.out завершится неудачно (если он возвращает что-то отличное от 0), gcc не будет вызываться

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