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 } -----------
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.
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.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.