У меня возникли проблемы с созданием файла makefile для библиотеки в nasm, так как это требует, чтобы вы запускали nasm с одним входным файлом за раз. Я пробовал использовать% .o:% .s, но я, вероятно, делаю это неправильно, так как он не работает. Вот что у меня есть:NASM: Makefile для библиотеки
NAME = libfts.a
SRC_ASM = file1.s \
file2.s \
file3.s \
OBJ_ASM = $(SRC_ASM:.s=.o)
FLAGS = -Wall -Werror -Wextra
CC_ASM = nasm
ASM_FLAGS = -f macho64
all : $(NAME)
$(NAME) : $(OBJ_ASM)
@ar rc $(NAME) $(OBJ_ASM)
@ranlib $(NAME)
#$(OBJ_ASM) : $(SRC_ASM)
# nasm -f macho64 -o $(OBJ_ASM) $(SRC_ASM)
%.o : %.s
nasm $(ASM_FLAGS) -o [email protected] $<
clean:
rm -f *.o main.o
fclean : clean
rm -f libfts.a
re : fclean all
.PHONY: clean fclean re
Я пытался комментировать и раскомментировать комментируемой части, движущиеся вещи вокруг, но ничего, кажется, работает для меня :(
Сейчас я получаю ar: no archive members specified
Другие ошибки я включил as
работает вместо nasm
и только 1 файл в SRC_ASM
спасибо :)
Моя проблема была у меня не было пустой строки между .S файлами и OBJ_ASM, даже если я его прямо здесь, потому что я добавил его при изменении файлы имен, поэтому здесь не было бы слишком долго: p спасибо! – dietbacon