2016-04-17 27 views
1

を指定:オンメイクエラー:作る(eは= 2):ファイルを見つけることができないシステムでは、私は新しいWindows PC上で交流プロジェクトをコンパイルしようとしていますが、私はmakeを実行したときに私が得る

D:\Eclipse_Workspace\project>make 
#@make -f makefile -C ./ -e cleanobj 
process_begin: CreateProcess(NULL, #@make -f makefile -C ./ -e cleanobj, ...) failed. 
make (e=2): The system cannot find the file specified. 
make: *** [all] Fejl 2 

私他のPCはプロジェクトがうまくコンパイルされています。 また、 "Fejl 2"は "Error 2"のデンマーク語で、残りが英語の場合はデンマーク語である理由がわかりません。

EDIT:ここ は、メイクファイルである(それはかなり長いです)メイクで

PROJECT_NAME := ble_app_hrs_s110_pca10028 

export OUTPUT_FILENAME 
#MAKEFILE_NAME := $(CURDIR)/$(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST)) 
MAKEFILE_NAME := $(MAKEFILE_LIST) 
MAKEFILE_DIR := $(dir $(MAKEFILE_NAME)) 

TEMPLATE_PATH = nrf51_sdk/toolchain/gcc 
ifeq ($(OS),Windows_NT) 
include $(TEMPLATE_PATH)/Makefile.windows 
else 
include $(TEMPLATE_PATH)/Makefile.posix 
endif 

MK := mkdir 
RM := rm -rf 

#echo suspend 
ifeq ("$(VERBOSE)","1") 
NO_ECHO := 
else 
NO_ECHO := @ 
endif 

# Toolchain commands 
CC    := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-gcc" 
AS    := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-as" 
AR    := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-ar" -r 
LD    := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-ld" 
NM    := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-nm" 
OBJDUMP   := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-objdump" 
OBJCOPY   := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-objcopy" 
SIZE   := "$(GNU_INSTALL_ROOT)/bin/$(GNU_PREFIX)-size" 

#function for removing duplicates in a list 
remduplicates = $(strip $(if $1,$(firstword $1) $(call remduplicates,$(filter-out $(firstword $1),$1)))) 

#source common to all targets 
C_SOURCE_FILES += \ 
nrf51_sdk/drivers_nrf/rtc/nrf_drv_rtc.c \ 
Drivers/NRF51_BLEDriver.c \ 
(..... a lot more files ....) 

#assembly files common to all targets 
ASM_SOURCE_FILES = nrf51_sdk/toolchain/gcc/gcc_startup_nrf51.s 

#includes common to all targets 
INC_PATHS = -I Application/ 
(..... a lot more include paths.......) 

OBJECT_DIRECTORY = _build 
LISTING_DIRECTORY =$(OBJECT_DIRECTORY) 
OUTPUT_BINARY_DIRECTORY =$(OBJECT_DIRECTORY) 

# Sorting removes duplicates 
BUILD_DIRECTORIES := $(sort $(OBJECT_DIRECTORY) $(OUTPUT_BINARY_DIRECTORY) $(LISTING_DIRECTORY)) 

#flags common to all targets 
CFLAGS = -DSOFTDEVICE_PRESENT 
CFLAGS += -DNRF51 
CFLAGS += -DS110 
CFLAGS += -DBOARD_PCA10028 
CFLAGS += -DBLE_STACK_SUPPORT_REQD 
CFLAGS += -mcpu=cortex-m0 
CFLAGS += -mthumb -mabi=aapcs --std=gnu99 
CFLAGS += -Wall -O0 -g3 
CFLAGS += -mfloat-abi=soft 
# keep every function in separate section. This will allow linker to dump unused functions 
CFLAGS += -ffunction-sections -fdata-sections -fno-strict-aliasing 
#CFLAGS += -flto -fno-builtin 

# keep every function in separate section. This will allow linker to dump unused functions 
LDFLAGS += -Xlinker -Map=$(LISTING_DIRECTORY)/$(OUTPUT_FILENAME).map 
LDFLAGS += -mthumb -mabi=aapcs -L $(TEMPLATE_PATH) -T$(LINKER_SCRIPT) 
LDFLAGS += -mcpu=cortex-m0 
# let linker to dump unused sections 
LDFLAGS += -Wl,--gc-sections 
# use newlib in nano version 
LDFLAGS += --specs=nano.specs -lc -lnosys 

# Assembler flags 
ASMFLAGS += -x assembler-with-cpp 
ASMFLAGS += -DSOFTDEVICE_PRESENT 
ASMFLAGS += -DNRF51 
ASMFLAGS += -DS110 
ASMFLAGS += -DBOARD_PCA10028 
ASMFLAGS += -DBLE_STACK_SUPPORT_REQD 
#default target - first one defined 
#default: clean nrf51422_xxac_s110 

#building all targets 
all: #clean 
    #$(NO_ECHO)$(MAKE) -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e cleanobj 
    $(NO_ECHO)$(MAKE) -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e nrf51422_xxac_s110 

#target for printing all targets 
help: 
    @echo following targets are available: 
    @echo nrf51422_xxac_s110 
    @echo flash_softdevice 


C_SOURCE_FILE_NAMES = $(notdir $(C_SOURCE_FILES)) 
C_PATHS = $(call remduplicates, $(dir $(C_SOURCE_FILES))) 
C_OBJECTS = $(addprefix $(OBJECT_DIRECTORY)/, $(C_SOURCE_FILE_NAMES:.c=.o)) 

ASM_SOURCE_FILE_NAMES = $(notdir $(ASM_SOURCE_FILES)) 
ASM_PATHS = $(call remduplicates, $(dir $(ASM_SOURCE_FILES))) 
ASM_OBJECTS = $(addprefix $(OBJECT_DIRECTORY)/, $(ASM_SOURCE_FILE_NAMES:.s=.o)) 

vpath %.c $(C_PATHS) 
vpath %.s $(ASM_PATHS) 

OBJECTS = $(C_OBJECTS) $(ASM_OBJECTS) 

nrf51422_xxac_s110: OUTPUT_FILENAME := nrf51422_xxac_s110 
nrf51422_xxac_s110: LINKER_SCRIPT=ble_app_hrs_gcc_nrf51.ld 
nrf51422_xxac_s110: $(BUILD_DIRECTORIES) $(OBJECTS) 
    @echo Linking target: $(OUTPUT_FILENAME).out 
    $(NO_ECHO)$(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out 
    $(NO_ECHO)$(MAKE) -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e finalize 

## Create build directories 
$(BUILD_DIRECTORIES): 
    echo $(MAKEFILE_NAME) 
    $(MK) [email protected] 

# Create objects from C SRC files 
$(OBJECT_DIRECTORY)/%.o: %.c 
    @echo Compiling file: $(notdir $<) 
    @echo arm-none-eabi-gcc $(CFLAGS) $(INC_PATHS) -c -o [email protected] $< 
    $(NO_ECHO)$(CC) $(CFLAGS) $(INC_PATHS) -c -o [email protected] $< 

# Assemble files 
$(OBJECT_DIRECTORY)/%.o: %.s 
    @echo Compiling file: $(notdir $<) 
    $(NO_ECHO)$(CC) $(ASMFLAGS) $(INC_PATHS) -c -o [email protected] $< 


# Link 
$(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out: $(BUILD_DIRECTORIES) $(OBJECTS) 
    @echo Linking target: $(OUTPUT_FILENAME).out 
    $(NO_ECHO)$(CC) $(LDFLAGS) $(OBJECTS) $(LIBS) -o $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out 


## Create binary .bin file from the .out file 
$(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).bin: $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out 
    @echo Preparing: $(OUTPUT_FILENAME).bin 
    $(NO_ECHO)$(OBJCOPY) -O binary $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).bin 

## Create binary .hex file from the .out file 
$(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).hex: $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out 
    @echo Preparing: $(OUTPUT_FILENAME).hex 
    $(NO_ECHO)$(OBJCOPY) -O ihex $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).hex 

finalize: genbin genhex echosize 

genbin: 
    @echo Preparing: $(OUTPUT_FILENAME).bin 
    $(NO_ECHO)$(OBJCOPY) -O binary $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).bin 

## Create binary .hex file from the .out file 
genhex: 
    @echo Preparing: $(OUTPUT_FILENAME).hex 
    $(NO_ECHO)$(OBJCOPY) -O ihex $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).hex 

echosize: 
    [email protected] "" 
    $(NO_ECHO)$(SIZE) $(OUTPUT_BINARY_DIRECTORY)/$(OUTPUT_FILENAME).out 
    [email protected] "" 

clean: 
    $(RM) $(BUILD_DIRECTORIES) 

cleanobj: 
    $(RM) $(BUILD_DIRECTORIES)/*.o 

flash: $(MAKECMDGOALS) 
    @echo Flashing: $(OUTPUT_BINARY_DIRECTORY)/$<.hex 
    nrfjprog --reset --program $(OUTPUT_BINARY_DIRECTORY)/$<.hex) 

## Flash softdevice 
flash_softdevice: 
    @echo Flashing: s110_softdevice.hex 
    nrfjprog --reset --program nrf51_sdk/softdevice/s110/hex/s110_softdevice.hex 
+0

[Windows上でMakefileのエラー](の可能性のある重複のhttp:あなたはメイクでレシピ行をコメントアウトしたい場合は

、あなたは常にではないTABの後の行の先頭にコメント文字を入れる必要があります://stackoverflow.com/questions/12991339/makefile-error-on-windows) –

+0

これは、makeがそれ自体を見つけることができないようです。え? – jdarthenay

+0

このメイクファイルの内容はわかりますか?私たちができなければ、私たちはあなたを助けることができません。 – jdarthenay

答えて

3

、(「レシピ文脈」で)タブ文字でインデントすべての行は、シェルにコマンドとして渡されます。 このような行に関する何もは、$を除いて、makeによって解釈されます。

特にこの場合、#文字は特別なものではなく、メイクコメント行を導入しません。したがって、このルールでは:

all: #clean 
     #$(NO_ECHO)$(MAKE) -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e cleanobj 
     $(NO_ECHO)$(MAKE) -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e nrf51422_xxac_s110 

最初の行はコメントアウトされません。それは#文字で始まるコマンドラインであり、makeはそのコマンドを実行するようにシステムに要求します。明らかに、このようなコマンドはシステムには存在しません。

all: #clean 
#  $(NO_ECHO)$(MAKE) -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e cleanobj 
     $(NO_ECHO)$(MAKE) -f $(MAKEFILE_NAME) -C $(MAKEFILE_DIR) -e nrf51422_xxac_s110 
+0

ああ、仕事をしました!今度は別のエラーが出ますが、見つからないファイルがいくつかあります。 – Jolle

関連する問題

 関連する問題