0
我附加了make文件的示例。參數傳遞和條件執行在make中不起作用
# SELECT TARGET OPERATING SYSTEM
override OS = LINUX
#OS = WINDOWS
CC = gcc
SRC_DIR = src
INC_DIR = inc
OBJ_DIR = obj
CFLAGS = -c -Wall -I$(INC_DIR)
# CONDITIONAL COMPILATION
ifeq ($(OS), "WINDOWS")
SERIAL = Winsrcfile
CLEAR = cls
endif
ifeq ($(OS), "LINUX")
SERIAL = Linsrcfile
CLEAR = clear
endif
我試圖做到這一點...
make OS=WINDOWS // compile for windows
或
make OS=LINUX // compile for linux
從Linux shell或Windows命令提示符,並希望默認是linux的,如果沒有指定OS的同時執行'make'。但是,ifeq在兩種情況下都會返回false,從而產生一個錯誤'沒有制定目標的規則'。我讀override directive & conditional syntax但似乎我還沒有清楚的想法。我已經嘗試了條件語法的每個備用語法。但在條件中得到錯誤'無效的語法。 Stop'
可能覆蓋在此沒有必要,作爲命令行參數通過makefile覆蓋變量值 – madD7