Jonas Engel
Jonas Engel

Reputation: 3

No rule to make target, needed by .elf

I'm a newbie and have an issue with building a code that I wrote for an arduino. When I try to build the release it finishes building but though there appears the ERROR:

 make: *** No rule to make target `/home/jonas/Dokumente/Studium/7.', needed by `test123.elf'.

I've absolutly no idea what I can do to fix this error

This is what my makefile looks like

################################################################################
# Automatically-generated file. Do not edit!
################################################################################

-include ../makefile.init

RM := rm -rf

# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
-include arduino/core/subdir.mk
-include objects.mk

ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C++_DEPS)),)
-include $(C++_DEPS)
endif
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
ifneq ($(strip $(CPP_DEPS)),)
-include $(CPP_DEPS)
endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
endif

-include ../makefile.defs`enter code here`

# Add inputs and outputs from these tool invocations to the build variables 
AR += \
/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/arduino.ar \

ELF += \
test123.elf \

EEP += \
test123.eep \

FLASH_IMAGE += \
test123.hex \


# All Target
all: test123

# Tool invocations
test123: $(FLASH_IMAGE)
    @echo 'Building target: $@'
    @echo 'Printing size:'
    "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/arduino-1.5.2/hardware/tools/avr/bin/avr-size" -A "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/test123.hex"
    @echo 'Finished building target: $@'
    @echo ' '

/home/jonas/Dokumente/Studium/7.\ Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/arduino.ar: $(AR_OBJ)
    @echo 'Starting archiver'
    "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/arduino-1.5.2/hardware/tools/avr/bin/avr-ar" rcs "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/arduino.ar"   $(AR_OBJ)
    @echo 'Finished building: $@'
    @echo ' '

test123.elf: $(LINK_OBJ) $(AR)
    @echo 'Starting combiner'
    "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/arduino-1.5.2/hardware/tools/avr/bin/avr-gcc" -Os -Wl,--gc-sections -mmcu=atmega328p -o "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/test123.elf"   $(LINK_OBJ) $(AR)  "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/arduino.ar" "-L/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release" -lm
    @echo 'Finished building: $@'
    @echo ' '

test123.eep: $(ELF)
    @echo 'Create eeprom image'
    "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/arduino-1.5.2/hardware/tools/avr/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "/home/jonas/Dokumente/Studium/7. Semester/Projekt /Autopilotwc/trunk/Software/test123/Release/test123.elf" "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/test123.eep"
    @echo 'Finished building: $@'
    @echo ' '

test123.hex: $(EEP)
    @echo 'Create Flash image (ihex format)'
    "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/arduino-1.5.2/hardware/tools/avr/bin/avr-objcopy" -O ihex -R .eeprom "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/test123.elf" "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/test123.hex"
    @echo 'Finished building: $@'
    @echo ' '

# Other Targets
clean:
    -$(RM) $(ELF)$(C++_DEPS)$(AR)$(C_DEPS)$(CC_DEPS)$(FLASH_IMAGE)$(AR_OBJ)$(CPP_DEPS)$(LINK_OBJ)$(EEP)$(CXX_DEPS)$(C_UPPER_DEPS)$(SIZEDUMMY) test123
    -@echo ' '

.PHONY: all clean dependents
.SECONDARY:

-include ../makefile.targets


################################################################################
# Automatically-generated file. Do not edit!
################################################################################

-include ../makefile.init

RM := rm -rf

# All of the sources participating in the build are defined here
-include sources.mk
-include subdir.mk
-include arduino/core/subdir.mk
-include objects.mk

ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C++_DEPS)),)
-include $(C++_DEPS)
endif
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
ifneq ($(strip $(CC_DEPS)),)
-include $(CC_DEPS)
endif
ifneq ($(strip $(CPP_DEPS)),)
-include $(CPP_DEPS)
endif
ifneq ($(strip $(CXX_DEPS)),)
-include $(CXX_DEPS)
endif
ifneq ($(strip $(C_UPPER_DEPS)),)
-include $(C_UPPER_DEPS)
endif
endif

-include ../makefile.defs`enter code here`

# Add inputs and outputs from these tool invocations to the build variables 
AR += \
/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/arduino.ar \

ELF += \
test123.elf \

EEP += \
test123.eep \

FLASH_IMAGE += \
test123.hex \


# All Target
all: test123

# Tool invocations
test123: $(FLASH_IMAGE)
    @echo 'Building target: $@'
    @echo 'Printing size:'
    "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/arduino-1.5.2/hardware/tools/avr/bin/avr-size" -A "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/test123.hex"
    @echo 'Finished building target: $@'
    @echo ' '

/home/jonas/Dokumente/Studium/7.\ Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/arduino.ar: $(AR_OBJ)
    @echo 'Starting archiver'
    "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/arduino-1.5.2/hardware/tools/avr/bin/avr-ar" rcs "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/arduino.ar"   $(AR_OBJ)
    @echo 'Finished building: $@'
    @echo ' '

test123.elf: $(LINK_OBJ) $(AR)
    @echo 'Starting combiner'
    "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/arduino-1.5.2/hardware/tools/avr/bin/avr-gcc" -Os -Wl,--gc-sections -mmcu=atmega328p -o "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/test123.elf"   $(LINK_OBJ) $(AR)  "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/arduino.ar" "-L/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release" -lm
    @echo 'Finished building: $@'
    @echo ' '

test123.eep: $(ELF)
    @echo 'Create eeprom image'
    "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/arduino-1.5.2/hardware/tools/avr/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "/home/jonas/Dokumente/Studium/7. Semester/Projekt /Autopilotwc/trunk/Software/test123/Release/test123.elf" "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123    /Release/test123.eep"
    @echo 'Finished building: $@'
    @echo ' '

    test123.hex: $(EEP)
    @echo 'Create Flash image (ihex format)'
    "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk /Software/arduino-1.5.2/hardware/tools/avr/bin/avr-objcopy" -O ihex -R    .eeprom "/home/jonas/Dokumente/Studium/7. Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/test123.elf" "/home/jonas/Dokumente/Studium/7.   Semester/Projekt/Autopilotwc/trunk/Software/test123/Release/test123.hex"
    @echo 'Finished building: $@'
    @echo ' '

    # Other Targets
    clean:
    -$(RM)      $(ELF)$(C++_DEPS)$(AR)$(C_DEPS)$(CC_DEPS)$(FLASH_IMAGE)$(AR_OBJ)$(CPP_DEPS)$(L    INK_OBJ)$(EEP)$(CXX_DEPS)$(C_UPPER_DEPS)$(SIZEDUMMY) test123
    -@echo ' '

    .PHONY: all clean dependents
    .SECONDARY:

    -include ../makefile.targets

Thanks a lot for your help.

Upvotes: 0

Views: 4812

Answers (1)

Etan Reisner
Etan Reisner

Reputation: 80931

You cannot use paths with spaces in makefiles correctly. It will not work.

Your attempts at escaping the space do not do what you want.

You also generally shouldn't be using full paths to files like that.

It makes moving the makefile/directory (or using it on some other machine) unnecessarily hard.

Just use paths relative to the current directory.

Upvotes: 2

Related Questions