3つのファイル、function.h、function.c、my_program.cがあり、function.hの中のメソッドを同じディレクトリにすべて呼び出す場合は、どのような方法で書き込むのが最適でしょうか私がlli my_program.bcを入力すると実際に実行されるmy_program.bcで終わるようにmakefileを作成しますか? (function.bcとtest.bcのパスを実行する必要がありますか、パスを実行する前にリンクする必要がありますか?)llvm用のメイクファイルの書き方IR
私はllvmを試しました-link 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