проблема компиляции c в Emacs (Ubuntu) - PullRequest
0 голосов
/ 07 января 2011

Я написал очень простую программу, например: (извините, я набрал код правильно, но дисплей подключен. Как я могу это исправить?)

#include <stdio.h>
int main( void )
{
   int i;

   for ( i = 0; i <= 10; i++ ) {
      printf( "%d hello!\n", i);
   }
   return 0;
}

Обычно я скомпилирую c программу в терминале с помощью команды

cc -o xxx xxx.c

Так что в Emacs, когда я набираю M-x compile, я меняю make -k на cc -o. Но я получил ошибку вроде

cc: аргумент '-o' отсутствует

В чем проблема?

Если я использую make, то все равно получаю ошибку

Не указаны цели и не найдены make-файлы.

Наконец, если вышеуказанная проблема исправлена, как я могу определить настраиваемую горячую клавишу для компиляции? Я уже знаю, как сделать что-то вроде

global-set-key [f8] 'goto-line

Но я не знаю, как установить горячую клавишу для действия только для режима c.

Ответы [ 4 ]

2 голосов
/ 07 января 2011

Вам необходимо предоставить всю линию CC.

"make -k" предполагает, что у вас есть Makefile, предоставляющий команды для создания вещей.

Итак, замените make -k на

cc -o xxx xxx.c

Что касается привязки Emacs:

(global-set-key [f6] 'compile)
1 голос
/ 08 января 2011

Хороший способ для создания простых однофайловых программ, таких как это, заключается в добавлении значений для переменной команды компиляции в верхней части файла, например:

// -*- compile-command:"g++ helloworld.cpp -g -o helloworld.exe"; -*-

Подробнее об этом можно прочитать в моем блоге "Написание быстрых программ на C ++ в emacs без make-файла"

0 голосов
/ 07 января 2011

Я думаю, что хороший способ сделать это, как это задокументировано для переменной compile-command (которая используется compile, обычно содержит make -k).

Выполните C-h v compile-command, чтобы просмотреть документацию по переменной. Он содержит код, который вы можете изменить по своему вкусу.

0 голосов
/ 07 января 2011

попробуйте изменить make -k, чтобы сделать xxx.

...