Hallo zusammen, ich kämpfe nun seit gut 3 Stunden im VScode den Compiler am start zu bekommen. Ich bekomme folgende Fehlermeldungen im Terminal Kommen die Meldungen vom Compiler? Denn mein VSCode erkennt die LIB's Vielleicht sieht jemand einen Fehler? make gcc -c main.c -o main.o main.c:27: avr/io.h: No such file or directory main.c:28: avr/interrupt.h: No such file or directory main.c:33: stdint.h: No such file or directory main.c:37: util/delay.h: No such file or directory das Makefile habe ich mir aus dem Debug Ordner meines Projektes bei Atmel Studio rauskoppiert. Makefile --------------- ######################################################################## ######## # Automatically-generated file. Do not edit! ######################################################################## ######## SHELL := cmd.exe RM := rm -rf USER_OBJS := LIBS := PROJ := O_SRCS := C_SRCS := S_SRCS := S_UPPER_SRCS := OBJ_SRCS := ASM_SRCS := PREPROCESSING_SRCS := OBJS := OBJS_AS_ARGS := C_DEPS := C_DEPS_AS_ARGS := EXECUTABLES := OUTPUT_FILE_PATH := OUTPUT_FILE_PATH_AS_ARGS := AVR_APP_PATH :=$$$AVR_APP_PATH$$$ QUOTE := " ADDITIONAL_DEPENDENCIES:= OUTPUT_FILE_DEP:= LIB_DEP:= LINKER_SCRIPT_DEP:= # Every subdirectory with source files must be described here SUBDIRS := # Add inputs and outputs from these tool invocations to the build variables C_SRCS += \ main.c PREPROCESSING_SRCS += ASM_SRCS += OBJS += \ main.o OBJS_AS_ARGS += \ main.o C_DEPS += \ main.d C_DEPS_AS_ARGS += \ main.d OUTPUT_FILE_PATH +=MultiSwitch_4.elf OUTPUT_FILE_PATH_AS_ARGS +=MultiSwitch_4.elf ADDITIONAL_DEPENDENCIES:= OUTPUT_FILE_DEP:= ./makedep.mk LIB_DEP+= LINKER_SCRIPT_DEP+= # AVR32/GNU C Compiler ./%.o: .././%.c @echo Building file: $< @echo Invoking: AVR/GNU C Compiler : 4.9.2 $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe $(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.1.130\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega168p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.1.130\gcc\dev\atmega168p " -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< # AVR32/GNU Preprocessing Assembler # AVR32/GNU Assembler ifneq ($(MAKECMDGOALS),clean) ifneq ($(strip $(C_DEPS)),) -include $(C_DEPS) endif endif # Add inputs and outputs from these tool invocations to the build variables # All Target all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES) $(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP) @echo Building target: $@ @echo Invoking: AVR/GNU Linker : 4.9.2 $(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe $(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="MultiSwitch_4.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega168p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.1.130\gcc\dev\atmega168p " @echo Finished building target: $@ "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy .exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "MultiSwitch_4.elf" "MultiSwitch_4.hex" "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy .exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "MultiSwitch_4.elf" "MultiSwitch_4.eep" || exit 0 "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump .exe" -h -S "MultiSwitch_4.elf" > "MultiSwitch_4.lss" "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy .exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "MultiSwitch_4.elf" "MultiSwitch_4.srec" "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.ex e" "MultiSwitch_4.elf" # Other Targets clean: -$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES) -$(RM) $(C_DEPS_AS_ARGS) rm -rf "MultiSwitch_4.elf" "MultiSwitch_4.a" "MultiSwitch_4.hex" "MultiSwitch_4.lss" "MultiSwitch_4.eep" "MultiSwitch_4.map" "MultiSwitch_4.srec" "MultiSwitch_4.usersignatures" ------------ meine c_cpp_properties.json ------------ { "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "C:\\Program Files (x86)\\Atmel\\Atmel Toolchain\\AVR8 GCC\\Native\\3.4.1061\\avr8-gnu-toolchain\\avr\\include" ], "browse": { "limitSymbolsToIncludedHeaders": false, "path": [ "C:\\Program Files (x86)\\Atmel\\Atmel Toolchain\\AVR8 GCC\\Native\\3.4.1061\\avr8-gnu-toolchain\\avr\\include" ] }, "defines": [ "__AVR_ATmega168PA__" ], "windowsSdkVersion": "10.0.10586.0", "compilerPath": "C:\\Program Files (x86)\\Atmel\\Studio\\7.0\\toolchain\\avr8\\avr8-gnu-toolchain\\bin\\avr -gcc.exe", "cStandard": "c11", "cppStandard": "c++17", "intelliSenseMode": "gcc-x64" } ], "version": 4 } -----------
Gast
#6276220
Huhu, schau dir mal die "AVR Helper" Extension an. Da must du zwar den avr-gcc und co selber installieren und kannst nicht das Atmel Studio nutzen, aber vielleicht ist das einfacher zu handhaben. btw. msys2 lohnt sich dabei immer zu installieren und dananch noch das bin Verzeichnis von zum pfad hinzufügen.
Gast
#6276304
Falls das dein compiler ouput ist: gcc -c main.c -o main.o Dann wird nicht avr-gcc aufgerufen, sondern ein anderer gcc. Der hat wiederrum nicht die benötigten Header. Schau mal mit sysinternals process monitor nach welche gcc executable wirklich aufgerufen wird.
Gast
#6276759
Ganz einfach gehts, wenn du dir platformio im vscode installierst. Das verwaltet dann Compiler & Tools in den gewünschten Versionen, Frameworks, Bibliotheken, Flash-tools usw. vollautomatisch.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.