0
私は次のように によってモジュール固有のMakefileを含めるべきである一般的なメイクファイルで構築する必要があります - 私はこれを行う私のモジュールのMakefileで条件付きでMakefile関数の変数に追加するには?
# Conditionally add Logger as a MUT dependency
define COND_ADD_LOGGER
$if($$(findstring -DLOGGER, $$(DEFINES)), SOURCES += logger.c)
endef
define CMN_TESTS_RULE
$(COND_ADD_LOGGER)
$(eval OBJECTS = $(SOURCES:.cpp=.o))
$(eval OBJECTS := $(OBJECTS:.c=.o))
$(TARGET): $(OBJECTS)
$(COMPILE_RULE_CMN)
endef
-
SOURCES = a.c b.c test.cpp
TARGET = generic_tests
$(eval $(CMN_TESTS_RULE))
これではありませんlogger.cファイルを私が期待したようにSOURCESリストに追加してください。 (DEFINES
変数は間違いなくそれにサブ文字列「-DLOGGER」を持っています。)
これは私がinfo
使用するときに出力されます -
$if($(findstring -DLOGGER, $(DEFINES)), SOURCES += logger.c)
generic_type_abstraction_tests: a.o b.o test.o
g++ -o [email protected] $^ D:/TEST/gtest-1.7.0/make/gtest_main.a
$if($(findstring -DLOGGER, $(DEFINES)), SOURCES += logger.c)
generic_type_abstraction_tests: a.o b.o test.o
g++ -o [email protected] $^ D:/TEST/gtest-1.7.0/make/gtest_main.a
を私はGNUが上CYGWINからバージョン3.81を作る使用していますWindows 8マシン。
私の主な障害は、 '$(TARGET)を使用した:代わりに' $(TARGET)の$(オブジェクト) ':$$ (OBJECTS) 'と呼ばれる。助けてくれてありがとう。 –