C単体テストにCheckを使用しています。作成する C ライブラリ ファイルごとに、テストとソース コードからリンクされた単一の実行可能ファイルを生成する 1 つのテスト ファイルが必要です。次に、この実行可能ファイルを実行して、すべてのテストに合格することを確認する必要があります。
1 つのテスト ファイルと 1 つのソース ファイルしかない場合、すべてがうまく機能します。対応するテスト ファイルを含む 2 つ目のソース ファイルを追加するとすぐに、それらすべてを 1 つの実行可能ファイルにリンクしようとします。
1 つの TEST_SRC と一致する SRC およびヘッダー ファイルを TEST_OBJ にプルし、2 つのオブジェクト ファイルを実行可能ファイルにコンパイルする 2 番目のルールを取得するにはどうすればよいですか? 以下は私の現在のMakefileです
OUT_DIR=bin
BUILD_DIR=build
TEST_BUILD_DIR=test_build
SRC_DIR=src
TEST_SRC_DIR=tests
SRC= $(wildcard $(SRC_DIR)/*.c)
TEST_SRC= $(patsubst $(SRC_DIR)/%.c, $(TEST_SRC_DIR)/%_tests.c, $(SRC))
TEST_OBJ= $(patsubst $(TEST_SRC_DIR)/%.c, $(TEST_BUILD_DIR)/%.o, $(TEST_SRC))
OBJ= $(patsubst $(SRC_DIR)/%.c, $(BUILD_DIR)/%.o, $(SRC))
$(OUT_DIR)/string_calculator_tests: $(TEST_OBJ)
gcc -o $@ $^ `pkg-config --cflags --libs check`
$(TEST_OBJ): $(TEST_SRC) $(SRC)
gcc -c -o $@ $^ `pkg-config --cflags --libs check`
どんな助けでも大歓迎です。