Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: многофаловый проект
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
TigerSHARC
Волей судьбы в руки попал интереснейший проект в исходниках. Но в папке прсото *.c и *.h файлы. Известно, что автор собирал проект под Linux. Теперь ломаю голову как откомпилить всё в бинарный файл. Нашёл пример как использовать Makefile:

CODE
# Makefile for printup
printup: print_up.o main.o
gcc -o printup print_up.o main.o
print_up.o: print_up.c print_up.h
gcc -c print_up.c
main.o: main.c
gcc -c main.c
clean:
rm -f *.o
rm -f printup


но у меня в проекте около 150 *.c файлов и вписывать каждый в Makefile - утомительно(хотя если нет альтернатив то деваться некуда).

Вопрос: как собрать проект под Linux быстро? В Eclipse это сделать удобнее?
_Артём_
Цитата(TigerSHARC @ Aug 25 2012, 21:37) *
но у меня в проекте около 150 *.c файлов и вписывать каждый в Makefile - утомительно(хотя если нет альтернатив то деваться некуда).

Нужно добавлять не файле, а папки с файлами.
Из моего (скачанного в нете) makefile:
Цитата
# source directories (all *.c, *.cpp and *.S files included)
DIRS := $(SRCDIR)
DIRS += $(COMMON)
DIRS += $(PCBBIR)
# includes
INCS := $(patsubst %, -I "%", $(DIRS))

# individual source files
SRCS :=

#calc obj files list
OBJS := $(SRCS)
OBJS += $(wildcard $(addsuffix /*.cpp, $(DIRS)))
OBJS += $(wildcard $(addsuffix /*.c, $(DIRS)))
OBJS += $(wildcard $(addsuffix /*.S, $(DIRS)))
OBJS := $(notdir $(OBJS))
OBJS := $(OBJS:.cpp=.o)
OBJS := $(OBJS:.c=.o)
OBJS := $(OBJS:.S=.o)
OBJS := $(patsubst %, $(OBJDIR)/%, $(OBJS))
TigerSHARC
если честно немного непонятно как им пользоваться... слишком много переменных. есть рабочий вариант?
AHTOXA
Вот:
Код
    EXE     = program-name
    DIRS    := src
# includes
    INCS    := $(patsubst %, -I "%", $(DIRS))
#calc obj files list
    OBJS    := $(SRCS)
    OBJS    += $(wildcard $(addsuffix /*.c, $(DIRS)))
    OBJS    := $(notdir $(OBJS))
    OBJS    := $(OBJS:.c=.o)
$(EXE): $(OBJS)
    gcc $(OBJS) -o "$(EXE)"
VPATH := $(DIRS)
%.o: %.c
    gcc -c -o $@ $<

Соберёт все *.c файлы из папки src в программу с именем program-name.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.