Ошибка компиляции "undefined reference to"
- Войдите на сайт для отправки комментариев
Втр, 18/10/2016 - 20:49
День добрый, помогите с ошибкой компиляции.
Проект в Atmel studio 7, среда ардуино 1.6.12.
Не пойму в чем проблема, при сборке проекта среда выдает следующие ошибки:
Severity Code Description Project File Line Error undefined reference to `IRrecv::decode(decode_results*)' project D:\ardu_projects\LAMP_V3\LAMP_V3\project\Sketch.cpp 36 Error ld returned 1 exit status project collect2.exe 0 Error recipe for target 'project.elf' failed project D:\ardu_projects\LAMP_V3\LAMP_V3\project\Debug\Makefile 130 Error undefined reference to `IRrecv::decode(decode_results*)' project D:\ardu_projects\LAMP_V3\LAMP_V3\project\Sketch.cpp 33 Error undefined reference to `IRrecv::enableIRIn()' project D:\ardu_projects\LAMP_V3\LAMP_V3\project\Sketch.cpp 26 Error undefined reference to `IRrecv::IRrecv(int)' project D:\ardu_projects\LAMP_V3\LAMP_V3\project\Sketch.cpp 16 Error undefined reference to `IRrecv::resume()' project D:\ardu_projects\LAMP_V3\LAMP_V3\project\Sketch.cpp 38
удалите встроенную в IDE библиотеку Robot IR Remote
Не помогает... ((((
значит все со словом робот, и какую библиортеку IR remote используете?
1) Удлил не помогает...
2) Библиотеку из комплекта Arduino, скинул в папку проекта,
объявлял двумя способами:
#include "D:\ardu_projects\Lamp_v3\LAMP_V3\project\IRremote.h"
#include "IRremote.h"
Без эффекта...
тогда полный вывод информации включите и весь лог при компиляции выложите
------ Build started: Project: ArduinoCore, Configuration: Debug AVR ------ Build started. Project "ArduinoCore.cppproj" (default targets): Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!=''). Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\Studio\7.0\Vs\Compiler.targets" from project "D:\ardu_projects\Lamp_v3\LAMP_V3\ArduinoCore\ArduinoCore.cppproj" (target "Build" depends on it): Task "RunCompilerTask" Shell Utils Path C:\Program Files (x86)\Atmel\Studio\7.0\shellUtils C:\Program Files (x86)\Atmel\Studio\7.0\shellUtils\make.exe all --jobs 4 --output-sync make: Nothing to be done for 'all'. Done executing task "RunCompilerTask". Task "RunOutputFileVerifyTask" Done executing task "RunOutputFileVerifyTask". Done building target "CoreBuild" in project "ArduinoCore.cppproj". Target "PostBuildEvent" skipped, due to false condition; ('$(PostBuildEvent)' != '') was evaluated as ('' != ''). Target "Build" in file "C:\Program Files (x86)\Atmel\Studio\7.0\Vs\Avr.common.targets" from project "D:\ardu_projects\Lamp_v3\LAMP_V3\ArduinoCore\ArduinoCore.cppproj" (entry point): Done building target "Build" in project "ArduinoCore.cppproj". Done building project "ArduinoCore.cppproj". Build succeeded. ------ Build started: Project: project, Configuration: Debug AVR ------ Build started. Project "project.cppproj" (default targets): Target "PreBuildEvent" skipped, due to false condition; ('$(PreBuildEvent)'!='') was evaluated as (''!=''). Target "CoreBuild" in file "C:\Program Files (x86)\Atmel\Studio\7.0\Vs\Compiler.targets" from project "D:\ardu_projects\Lamp_v3\LAMP_V3\project\project.cppproj" (target "Build" depends on it): Task "RunCompilerTask" Shell Utils Path C:\Program Files (x86)\Atmel\Studio\7.0\shellUtils C:\Program Files (x86)\Atmel\Studio\7.0\shellUtils\make.exe all --jobs 4 --output-sync Building file: .././Sketch.cpp Invoking: AVR8/GNU C Compiler : 4.9.2 "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-g++.exe" -funsigned-char -funsigned-bitfields -DDEBUG -DF_CPU=16000000L -DARDUINO=106012 -DARDUINO_AVR_NANO -DARDUINO_ARCH_AVR -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.1.130\include" -I"..\\..\ArduinoCore\include\core" -I"..\\..\ArduinoCore\include\variants\eightanaloginputs" -I"..\\..\ArduinoCore\include\variants\standard" -Os -fno-threadsafe-statics -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -w -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.1.130\gcc\dev\atmega328p" -c -std=gnu++11 -MD -MP -MF "Sketch.d" -MT"Sketch.d" -MT"Sketch.o" -o "Sketch.o" ".././Sketch.cpp" Finished building: .././Sketch.cpp Building target: project.elf Invoking: AVR8/GNU Linker : 4.9.2 "C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-g++.exe" -o project.elf HSV2RGB.o LAMP_MODE.o SHARP_2Y0A21.o Sketch.o -Wl,-Map="project.map" -Wl,--start-group -Wl,-lm -Wl,-lArduinoCore -Wl,--end-group -Wl,-L"D:\ardu_projects\Lamp_v3\LAMP_V3\ArduinoCore\Debug" -Wl,--gc-sections -mmcu=atmega328p -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\atmel\ATmega_DFP\1.1.130\gcc\dev\atmega328p" -Os D:\ardu_projects\Lamp_v3\LAMP_V3\project\Debug\Makefile(130,1): error: recipe for target 'project.elf' failed Sketch.o: In function `setup': D:\ardu_projects\Lamp_v3\LAMP_V3\project\Sketch.cpp(26,1): error: undefined reference to `IRrecv::enableIRIn()' Sketch.o: In function `loop': D:\ardu_projects\Lamp_v3\LAMP_V3\project\Sketch.cpp(33,1): error: undefined reference to `IRrecv::decode(decode_results*)' D:\ardu_projects\Lamp_v3\LAMP_V3\project\Sketch.cpp(36,1): error: undefined reference to `IRrecv::decode(decode_results*)' D:\ardu_projects\Lamp_v3\LAMP_V3\project\Sketch.cpp(38,1): error: undefined reference to `IRrecv::resume()' Sketch.o: In function `_GLOBAL__sub_I_LampModeCls': D:\ardu_projects\Lamp_v3\LAMP_V3\project\Sketch.cpp(16,1): error: undefined reference to `IRrecv::IRrecv(int)' collect2.exe(0,0): error: ld returned 1 exit status make: *** [project.elf] Error 1 The command exited with code 2. Done executing task "RunCompilerTask" -- FAILED. Done building target "CoreBuild" in project "project.cppproj" -- FAILED. Done building project "project.cppproj" -- FAILED. Build FAILED. ========== Build: 1 succeeded or up-to-date, 1 failed, 0 skipped ==========Попробую создать новый проект, и переместить туда весь код...
лучше пример из библиотеки скомпилите
Пересобрал новый проект, вот еще один лог
п.с. Это мой первый проект под atmel studio 7, раньше писал под версию 6.2
В среде Ардуино компилируется, в среде Atmel Studio 7 нет...
Может быть кто то уже наступал на эти грабли ?
Ну как бы Atmel Studio тут ни при чём, она сама по себе не работает с ардуиновскими скетчами. Все вопросы к плагину Visual Micro.
Хотя такая ошибка уже встречалась и в Arduino IDE. Решалась так: скачивали более старую версию Arduino IDE (вплоть до 1.0.5), оттуда брали ld.exe и заменяли им ld.exe в новой Arduino IDE. Проделайте тоже самое с Visual Micro (не знаю, где плагин размещает этот файл, поищите).
Привет, решил проблему... Помогла только установка atmel studio 6.2