Код (C++): libraries\Servo\avr\Servo.cpp.o (symbol from plugin): In function `ServoCount': (.text+0x0): multiple definition of `__vector_17' libraries\IRremote\irISR.cpp.o (symbol from plugin):(.text+0x0): first defined here collect2.exe: error: ld returned 1 exit status exit status 1 Столкнулся с проблемой конфликтующих библиотек, спрашиваю, как исправить.
если в гуглях не забанили то можно в сети поискать ответ. вот первый http://arduino.ru/forum/programmirovanie/konflikt-bibliotek-tone-i-iremote вот второй http://bigbarrel.ru/irremote-pwm-error/
В первом варианте вообще не на ту тему решение . А во втором варианте несуществующие строки изменять надо, я так не умею. Как я уже понял, проблема тут не с таймером.
Я так и не решил проблему, всё та же ошибка. Но то, что вы скинули ссылки немного не по теме мне очевидно. Если же для вас там всё так понятно, то напишите решение сюда а не левые ссылки кидайте.
как не на ту? в первом же ответе ответ на ваш вопрос! никто её за вас и не решит, это, ведь, очевидно)
Для начала настоятельно рекомендую ознакомьться с этим. Потом посмотрите на вашу ошибку: Потом пройдите по ссылке, что вам дали. Там в вопросе есть нечто, что вас должно заинтересовать, а именно то, что того участника форума мучает такая же ошибка как и у вас: Далее в первом ответе следует ответ (извиняюсь за тавтологию) на ваш вопрос: Это же и является решением вашей проблемы. Пожалуйста, перестаньте требовать что-либо. Вам никто ничего не должен. Если будете продолжать, то ответов от людей вы не получите никогда. Обратите внимание как вы задали вопрос и как участник с другого форума и как быстро вы получили ответ, а как он.
А ничего, что в следующем ответе написано, что данной переменной нет ни в одном файле IRremote и Servo? И этой переменной действительно нигде нет. Так что здесь вы не правы, опять же.
Ты признаёшь тот факт, что в данной битве компилятор выиграл у человека? Он же нашёл эту ошибку и наверняка подсказывает где. Не ленись. Учись искать ошибки.
ЧЕЛОВЕК сделал компилятор. Значит ЧЕЛОВЕК должен понимать что делает компилятор и какие ошибки выдаёт. Я когда то писал диалоговые программы на C++ и легко разбирался с ошибками которые выдаёт компилятор. Но тогда у меня был другой компилятор, а с этим arduino-компилятором я вообще ничего не понимаю. Но к счастью с ним у меня таких сложных ошибок не было.
Согласен, пришёл на форум, чтобы объяснили в чём проблема, а мне кидают оффтопные ссылки, либо ссылки с тем же вопросом, но без решения проблемы и без объяснения ошибки. Я вижу, в каких файлах происходит конфликт. Но. Там не сказано, что именно конфликтует и я решил спросить тут. Получил я только бредовые ответы, авторы которых доказывают, что они правы. Но это не так. Ещё раз спрашиваю всех. Вы можете сказать, в чём проблема, где именно ошибка? Решить я её и сам смогу, но её надо только найти.
@markk72, какую плату используете (какой микроконтроллер), какая версия библиотеки IRremote (и где скачали). У вас конфликт с 17 вектором прерывания - вектора прерывания описаны в заголовочных файлах в Arduino\hardware\tools\avr\avr\include\avr. Для ATmega328P вектор явно не подходит Код (C++): #define SPI_STC_vect_num 17 #define SPI_STC_vect _VECTOR(17) /* SPI Serial Transfer Complete */ Для ATmega2560 - подходит Код (C++): /* Timer/Counter1 Compare Match A */ #define TIMER1_COMPA_vect_num 17 #define TIMER1_COMPA_vect _VECTOR(17) #define SIG_OUTPUT_COMPARE1A _VECTOR(17) Так что здря ругаетесь на форумчан, мужики усталина.
IrRemote и Servo используют один и тот же таймер по умолчанию, надо их развести по разным. В библиотеке IRRemote памойму есть возможность указать использовать другой таймер. Но это не точно. Смотреть нада.
@markk72, у вас какойто древний IRremote - файла irISR.cpp я и в архивах гитхаба найти не могу. Установите свежую https://github.com/z3t0/Arduino-IRremote или найдите где в вашей используется TIMER1 Код (C++): /* avr/iom32u4.h - definitions for ATmega32U4. */ #define TIMER1_COMPA_vect_num 17 #define TIMER1_COMPA_vect _VECTOR(17) /* Timer/Counter1 Compare Match A */
У меня с новым IRremote становится слишком много ошибок. Так что я пока что с этим останусь. Проблему с вектором 17 решил только что, с помощью вашего совета. Но теперь у меня конфликт с библиотекой Tone и вектором 32, попробую также решить.