2014-12-16 5 views
1

Я пытаюсь написать программу, которая компилирует программу в заданном каталоге, и у меня возникает пара вопросов.Скомпилировать программу в linux с помощью кода c

Я использую команду execv (и пробовал другие семейства exec).
Итак, когда я использую эту команду с помощью пути, она запускает ее из каталога кода + пути или только с пути <> например: моя программа находится на рабочем столе: exe.c. когда я использую команду execv с номером "./Users", путь будет идти до "Desktop/Users"?

Второй вопрос

Как скомпилировать программу с помощью кода на C?

Спасибо!

+0

'Как скомпилировать программу через c code.', что вы подразумеваете под компиляцией с помощью кода' c'? компилятор для вас не нужно переписывать ваш компилятор. Просто используйте 'gcc -o exe exe.c' –

+0

. Программа может быть скомпилирована с помощью' makefile'. Я думаю, это то, что вы пытались спросить – Vikram

+0

вы пробовали execv с gcc ?? –

ответ

3

Вы можете использовать функцию exec для ее компиляции.

execl("/usr/bin/gcc or cc","cc","path name or filename",NULL); 

С помощью этого вы можете легко скомпилировать эту программу. Если имя файла задано, оно будет взято из текущего каталога. Или же это будет взято с данного пути.

+0

Спасибо, это работает! Кто-то dwon проголосовал за мой вопрос, поэтому я не могу проголосовать за ваш ответ. только принимайте его. – asdsd

+0

@asdsd Не упоминайте !!!! –

+1

Пожалуйста, не вызывайте компилятор как 'gcc', это не переносимо. Используйте 'execlp()' с 'cc' или' c99' в качестве имени компилятора. – fuz

Смежные вопросы