1
私は小さなメイクファイルを書いています、と私はターゲット固有の変数に問題を持って、私は、コードのこの部分を持っている:私はメイクターゲット固有の変数
を呼び出すときFILE_SOURCE := pliki.c wczytaj_plik.c wypisz_plik.c
CONSOLE_SOURCE := wczytaj_konsola.c wypisz_konsola.c
OTHER_SOURCE := suma.c roznica.c iloczyn.c macierz.c
HEADERS := suma.h roznica.h iloczyn.h wypisz.h wczytaj.h macierz.h
DEFINE_OPT =
NAME=macierze
FILE_OBJECTS := $(FILE_SOURCE:.c=.o)
CONSOLE_OBJECTS := $(CONSOLE_SOURCE:.c=.o)
OTHER_OBJECTS := $(OTHER_SOURCE:.c=.o)
finput: HEADERS+=pliki.h
finput: DEFINE_OPT+=-D WEWY_PLIKI
finput: OTHER_OBJECTS+=$(FILE_OBJECTS)
finput cinput: debug $(NAME)
$(NAME): $(OTHER_OBJECTS) main.o
@echo $^
gcc $(CFLAGS) -o $(NAME) $^
debug:
@echo $(OTHER_OBJECTS)
これは、関連する作品です私はすべての.oファイルを取得しますが、
@echo $^
だけを生成し、ターゲットのデバッグで
make finput
suma.o roznica.o iloczyn.o macierz.o main.o
FILE_OBJECTSを追加しましたが、GNUにマニュアルを作成していなかったようなので、されています
There is one more special feature of target-specific variables: when you define a target-specific variable that variable value is also in effect for all prerequisites of this target, and all their prerequisites, etc. (unless those prerequisites override that variable with their own target-specific variable value).
だから、$(NAME)で$(OTHER_OBJECTS)が$が含まれていないことを少し奇妙です(FILE_OBJECTS)、どうすればこの問題を解決できますか?
ありがとう、私のためにそれを覚えていただきありがとうございます。 – Andna