function.h, function.c 및 my_program.c가있는 경우 function.h에서 같은 디렉토리에있는 모든 메소드를 호출하면 가장 좋은 작성 방법은 무엇입니까? 메이크 파일 그래서 결국 lli my_program.bc 입력 할 때 실행되는 my_program.bc 결국? (함수에 물건을 삽입하는 사용자 정의 패스를 실행해야합니다. function.bc 및 test.bc에 대한 패스를 실행해야합니까? 아니면 패스를 실행하기 전에 링크해야합니까?)llvm 용 메이크 파일을 작성하는 방법 IR
나는 llvm을 시도했습니다. - 행운과 함께 function.bc my_program.bc를 연결하십시오. 나는 단순한 무언가를 놓치고 있거나 모든 것을 잘못 생각하고 있다고 느낍니다.
현재 끔찍한 없음 가공 메이크 :
.PHONY: all clean
CC = clang
CFLAGS = -std=gnu99 -D_POSIX_C_SOURCE=200809L -g -Wall
IRFLAGS = -O3 -emit-llvm
TARGET = test
DEPS = functions.h
all: $(TARGET)
bc: test2
%.o: %.c $(DEPS)
$(CC) -c -o [email protected] $< $(CFLAGS)
%.bc: %.c $(DEPS)
$(CC) $(IRFLAGS) -c -o [email protected] $<
test2: test.bc functions.bc
llvm-link -o test2.bc $< functions.bc
test: test.o functions.o
$(CC) $(CFLAGS) -o [email protected] $^
clean:
$(RM) $(TARGET) *.o *.bc
실제로 질문에 답변하지는 않지만 직접 패스를 실행 해 보았습니까? –
예, 패스가 작동하고 실행되며 테스트 실행 파일도 작동합니다. 내 문제는 원래 프로그램을 링크하여 bc 형식으로 실행하는 것입니다. – Ellyl