2013-03-09 5 views
1

У меня есть только один файл: main.cpp и я хочу, чтобы создать makefile для того, чтобы запустить его с помощью Unix .. Я пытаюсь написать makefile, так что в моем makefile я писал:Создание Makefile для Unix

#file: makefile 

a.out : main.o 
     g++ main.o -ansi -pedantic‬ 

main.o : main.cpp 
    g++ main.cpp -ansi -pedantic‬ 

clean : rm main.o a.out 

все нормально? как я могу запустить его?

makefile 
a.out 
+2

Запустите 'make a.out', хотя вам нужна опция' -c', когда cimpiling 'main.o':' g ++ -c main.cpp -ansi -pedantic' – juanchopanza

+0

что-то вроде: #FILE: Makefile a.out: main.o г ++ main.o -ansi -pedantic main.o: main.cpp г ++ -c main.cpp -ansi -pedantic clean: rm main.o a.out, right? Спасибо! –

+0

Это выглядит правильно. Без флага '-c'' g ++ 'пытается скомпилировать исполняемый файл, но вам нужен общий объект (main.o). Кроме того, 'make' требует вкладок, я думаю, что в одном из ответов говорится. – juanchopanza

ответ

2

Прочитать вводный учебник. Вам нужно прочитать хотя бы основы.

http://capone.mtsu.edu/csdept/FacilitiesAndResources/make.htm

ГНУ сделать имеет полную (но труднее читать) руководство тоже:

http://www.gnu.org/software/make/manual/make.html

О вашем конкретном примере: вы запускаете сделать, чтобы генерировать a.out. Затем, вы можете запустить a.out:

$ make 
$ ./a.out 
1

Если main.cpp единственный исходный файл, вы, вероятно, даже не нужен Makefile.

$ rm Makefile 
$ make main 

У Марка есть очень разумные правила по умолчанию. Воспользуйтесь ими. (Вышеуказанный будет работать с некоторыми вариантами Make, но (возможно) не все.)

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