어떤 이유로 저는 현대적인 프로그래밍 방법에 익숙하지 않습니다. 68k 어셈블리 프로그래머로서, 나는 하나의 트리 파일을 사용하여 모든 것을 최종 파일에 연결하는 대신,보다 전형적인 "빌드/링크 객체"체계를 따르기 위해 노력하고있다. 그러나 나는 논리적 인 설명을 찾고이 문제를 해결하기 위해 4 일을 보냈다.GNU Make가 명백한 규칙을 감지하지 못합니다.
특정 폴더에서 모든 파일을 자동으로 검색 및 빌드하려고합니다.이 파일은 특별히 정의 된 개체로 묶여 있으며 특별히 정의 된 다른 개체와 함께 연결됩니다. 문제는 위에있는 https://pastebin.com/H6QE29fj
CUR = $(SRC)\lib
VPATH = $(OBJ) $(CUR)
INPUT = $(notdir $(wildcard $(CUR:\=/)/*))
$(OBJ)\library.md.o: $(INPUT:.asm=.o)
$(VLINK) -r -o [email protected] $(addprefix $(OBJ)\,$(notdir $^))
:
이
은 메이크입니다. 며칠 전에 $ (OBJ) \ ints.md.o를 $ (SRC) \ ints 폴더에서 생성하기 위해이 코드 스 니펫을 사용했습니다. 전혀 문제가 없으므로 $ (INPUT) 변수를 사용하기 바로 전에 파일 이름을 수동으로 추가하기 때문에 SECTION (engine shenanigans)의 시작 부분에 어셈블됩니다.상기 코드가 "작동"하면 라이브러리에서 왜 작동하지 않습니까?
make: *** No rule to make target `loadtilemap.o', needed by `.\src\__obj\library.md.o'. Stop.
% .o : % .asm 규칙으로 충분하지 않아야합니까?
나는 그것을 작동 시켰고, 지금은 훨씬 더 나아 보인다. 고마워요! :디 –