2014-10-19 3 views
0

У меня возникли проблемы с созданием make-файла. Я попытался скомпилировать некоторые файлы с терминала и нашел подходящие параметры для gcc для этого. Но у меня есть некоторые проблемы с созданием одного make-файла для выполнения всех этих задач.Как создать make-файл для компиляции нескольких программ

Вот мои команды, которые работают.

gcc -c pstree.c -DHAVE_CONFIG_H -I. 
gcc -o hello pstree.o -L/usr/lib/ -ltinfo 

gcc -c fuser.c -DHAVE_CONFIG_H -I. 
gcc -c -o libsignals.a signals.c 
gcc -o hello fuser.o -L/usr/lib/ -L. -lsignals 

gcc -c -o libsignals.a signals.c 
gcc -o hello killall.o -L/usr/lib/ -L. -lsignals 
gcc -c killall.c -DHAVE_CONFIG_H -I. 

Как я могу сделать Makefile для выполнения этих команд?

+0

что вы понимаете, о создании файлов? вы понимаете цели, зависимости и связь? если не читать в первую очередь. – jgr208

+0

http://mrbook.org/tutorials/make/ - хороший источник помощи. также в чем проблема в большей специфике? – jgr208

ответ

1
killall: hello\ fuser.o 
    gcc -c -o libsignals.a signals.c 
    gcc -o hello killall.o -L/usr/lib/ -L. -lsignals 
    gcc -c killall.c -DHAVE_CONFIG_H -I. 


fuser: hello\ pstree.o 
    gcc -c fuser.c -DHAVE_CONFIG_H -I. 
    gcc -c -o libsignals.a signals.c 
    gcc -o hello\ fuser.o -L/usr/lib/ -L. -lsignals 

pstree: 
    gcc -c pstree.c -DHAVE_CONFIG_H -I. 
    gcc -o hello\ pstree.o -L/usr/lib/ -ltinfo 

clean: 
rm -rf *.o 

Я написал очень сильно загрязнена вы можете определить переменную куб.см, такие как:
CC = gcc
CFLAGS = -g -Wall -I.
LIBS = -L/usr/lib/ -lsignals
и так далее .....
Mine очень грязный ....

ПРИМЕЧАНИЕ: Перед каждой строкой, предназначенной для вас, необходимо использовать использовать TAB, а не спа се.

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

make clean 
make killall 
Смежные вопросы