Дайте хоть какую то пищу для размышления, а то прямо не знаю что думать.
int fun(char (*)[1024]);
int fun(char (*m)[1024]) {/*...*/}
Сразу скажу, комп у меня слабенький и ждать 3-4 часа чтоб понять что забыл в конце оператора точку с запятой поставить, это не хорошо?!
*.o
. Т.е. можно взять и откомпилировать один файл из дерева исходников ядра. Например: make init/main.o
..c
-- перекомпилируется единственный соответствующий ему файл .o
.как можно тестировать компоненты ядра
What: /sys/power/autosleep
Date: April 2012
Contact: Rafael J. Wysocki <rjw@rjwysocki.net>
Description:
The /sys/power/autosleep file can be written one of the strings
returned by reads from /sys/power/state. If that happens, a
work item attempting to trigger a transition of the system to
the sleep state represented by that string is queued up. This
attempt will only succeed if there are no active wakeup sources
in the system at that time. After every execution, regardless
of whether or not the attempt to put the system to sleep has
succeeded, the work item requeues itself until user space
writes "off" to /sys/power/autosleep.
в файле /sys/power/autosleep -стоит "off", файл не редактируется
cc -o tr main_0.o main_1.o
PROJECT = tr
SOURCES = main_0.c main_1.c
OBJECTS = $(SOURCES:.c=.o)
HEADER_DEPS = $(SOURCES:.c=.d)
.PHONY: all
all: $(PROJECT)
$(PROJECT): $(OBJECTS)
$(CC) $(CFLAGS) $^ -o $@
-include $(HEADER_DEPS)
%.o: %.c
$(CC) $(CFLAGS) -MM -MT $@ -MF $(patsubst %.o,%.d,$@) $<
$(CC) $(CFLAGS) -c $< -o $@
.PHONY: clean
clean:
$(RM) $(PROJECT) $(OBJECTS) $(HEADER_DEPS)
Есть исходный код на Си, который вызывает функцию на ассемблере, но передаваемые аргументы как получить,
Как бы Вы написали в makefile если бы у Вас имелось 0.c 1.c 2.c 3.h? Заголовочник 3.h для всех исходников
OBJS := 0.o 1.o 2.o # список объектников, который нам понадобится в двух местах
all: exe # традиционно сборка всего называется all. all зависит от единственного файла: exe
exe: $(OBJS) # файл exe зависит от объектникоа
$(CC) $(LDFLAGS) -o $@ $^ # чтобы собрать exe -- вызвать компилятор, передать ему LDFLAGS, выводить в $@ (т.е. в exe), на вход брать $^ (т.е. всё от чего зависит $@)
%.o: %.c 3.h # объектники зависят от исходников с таким же именем, а так же от 3.h
$(CC) -c $(CFLAGS) -o $@ $< # чтобы собрать объектник -- вызвать компилятор с ключом -c, передать ему CFLAGS, выводить в $@ (т.е. в %.o), компилировать $< (т.е. %.с с тем же именем)
clean: # традиционно очистка всего называется clean
-rm -f $(OBJS) exe # для очистки удалить объектники и exe
.PHONY: all clean # all и clean -- это не файлы