簡體   English   中英

Makefile:編譯src和測試目錄時出錯

[英]Makefile: Error while compiling src and test directories

LIB_DIRS = abcd xyz pqr mnq ghj

SER_DIRS = klm

.PHONY: default build lib service clean distclean

TEST_DIRS = abcd xyz pqr

test_lib :
        for dir in $(TEST_DIRS); do \
                $(MAKE) -C $$dir; \
        done

TESTS := $(addprefix TEST_, $(TEST_DIRS))

run : $(TESTS)

TEST_%:
        ./$*/test/$*_test --log_level=message

test :  test_lib run

default: all

all: build lib service

lib: 
        for dir in $(LIB_DIRS); do \
                $(MAKE) -C $$dir; \
        done

每個LIB_DIR都有一個src和test目錄。 使用make all命令,只應編譯src目錄文件。 但是在我的情況下,測試目錄文件也會與src目錄一起編譯。 使用make test命令時,僅測試目錄文件會被編譯。 由於測試文件取決於src文件,因此make all for測試文件會發生錯誤。 有人可以幫我解決這個問題嗎?

好吧,這是一個入門者:

您應該在每個目錄中提供Makefile文件,這些文件知道如何構建libtest 顯然, test取決於lib

然后,您可以將行更改為

lib: 
    for dir in $(LIB_DIRS); do \
            $(MAKE) -C $$dir; \
    done

lib: 
    for dir in $(LIB_DIRS); do \
            $(MAKE) -C $$dir lib; \ #<- notice the target
    done

test_lib相似。 否則,由於子變量不知道要做什么,因此當前變量集是不可能的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM