当有明确的定义时,请抱怨目标'build/libc/string/strlen.c'没有规则.奇怪的是,它成功地为'build/libc/libc.a'编译了除了一个依赖项之外的所有依赖项.我曾经或者至少试图禁用内置隐式规则和变量,以避免花费数小时调试同时拔出头发,但它似乎没有帮助,因为我完全迷失了.
Makefile文件:
.SUFFIXES:
MAKEFLAGS += -rR
STD = gnu11
CFLAGS = -O2 -g -ffreestanding -fbuiltin -Wall -Wno-div-by-zero -D__is_vos_kernel__ -Iinclude
LFLAGS = -O2 -g -ffreestanding -fbuiltin -Wall -Wextra
LIBC_FLAGS = -O2 -g -D__is_vos_libc__ -Iinclude
LIBK_FLAGS = -O2 -g -ffreestanding -fbuiltin -D__is_vos_libc__ -Iinclude -D__is_vos_kernel__
CC = i386-elf-gcc
LD = i386-elf-ld
AR = i386-elf-ar
AS = /usr/local/bin/nasm
SYSROOT = sysroot
BUILDDIR = builddir
SYSARG = --sysroot=sysroot -isystem=/usr/include
LIBC_OBJECTS = $(wildcard libc/*.c)
LIBC_HEADERS = $(wildcard libc/*.h)
LLIBC_HEADERS = $(wildcard sysroot/usr/include/*.h)
header:=$(shell find libc -type …Run Code Online (Sandbox Code Playgroud)