Конфликт библиотек?

Тема в разделе "Arduino & Shields", создана пользователем markk72, 19 июн 2018.

  1. markk72

    markk72 Нуб

    Код (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
    Столкнулся с проблемой конфликтующих библиотек, спрашиваю, как исправить.
     
  2. vvr

    vvr Инженерище

    Daniil и NikitOS нравится это.
  3. markk72

    markk72 Нуб

    В первом варианте вообще не на ту тему решение . А во втором варианте несуществующие строки изменять надо, я так не умею. Как я уже понял, проблема тут не с таймером.
     
  4. vvr

    vvr Инженерище

    ну если вы всё поняли тогда , наверное, вопрос снят.
    хотя внимательно почитать стоит.
     
  5. markk72

    markk72 Нуб

    Я так и не решил проблему, всё та же ошибка. Но то, что вы скинули ссылки немного не по теме мне очевидно. Если же для вас там всё так понятно, то напишите решение сюда а не левые ссылки кидайте.
     
  6. Daniil

    Daniil Гуру

    как не на ту?:confused: в первом же ответе ответ на ваш вопрос!
    никто её за вас и не решит, это, ведь, очевидно)
     
  7. markk72

    markk72 Нуб

    ПОКАЖИ МНЕ ТУТ ОТВЕТ
     

    Вложения:

  8. Daniil

    Daniil Гуру

    Для начала настоятельно рекомендую ознакомьться с этим.
    Потом посмотрите на вашу ошибку:
    Потом пройдите по ссылке, что вам дали.
    Там в вопросе есть нечто, что вас должно заинтересовать, а именно то, что того участника форума мучает такая же ошибка как и у вас:
    Далее в первом ответе следует ответ (извиняюсь за тавтологию) на ваш вопрос:
    Это же и является решением вашей проблемы.
    Пожалуйста, перестаньте требовать что-либо. Вам никто ничего не должен. Если будете продолжать, то ответов от людей вы не получите никогда.
    Обратите внимание как вы задали вопрос и как участник с другого форума и как быстро вы получили ответ, а как он.
     
    vvr и parovoZZ нравится это.
  9. markk72

    markk72 Нуб

    А ничего, что в следующем ответе написано, что данной переменной нет ни в одном файле IRremote и Servo? И этой переменной действительно нигде нет. Так что здесь вы не правы, опять же.
     
  10. Daniil

    Daniil Гуру

    Хорошо, там предложено ещё несколько решений.
    Они вам помогли?
     
  11. parovoZZ

    parovoZZ Гуру

    Ты признаёшь тот факт, что в данной битве компилятор выиграл у человека? Он же нашёл эту ошибку и наверняка подсказывает где. Не ленись. Учись искать ошибки.
     
    Mitrandir и vvr нравится это.
  12. DetSimen

    DetSimen Guest

    тупой.jpg
     
    parovoZZ нравится это.
  13. Yaroslav1

    Yaroslav1 Нерд

    ЧЕЛОВЕК сделал компилятор. Значит ЧЕЛОВЕК должен понимать что делает компилятор и какие ошибки выдаёт. Я когда то писал диалоговые программы на C++ и легко разбирался с ошибками которые выдаёт компилятор. Но тогда у меня был другой компилятор, а с этим arduino-компилятором я вообще ничего не понимаю. Но к счастью с ним у меня таких сложных ошибок не было.
     
  14. markk72

    markk72 Нуб

    Согласен, пришёл на форум, чтобы объяснили в чём проблема, а мне кидают оффтопные ссылки, либо ссылки с тем же вопросом, но без решения проблемы и без объяснения ошибки. Я вижу, в каких файлах происходит конфликт. Но. Там не сказано, что именно конфликтует и я решил спросить тут. Получил я только бредовые ответы, авторы которых доказывают, что они правы. Но это не так.
    Ещё раз спрашиваю всех. Вы можете сказать, в чём проблема, где именно ошибка? Решить я её и сам смогу, но её надо только найти.
     
  15. ZAZ-965

    ZAZ-965 Гуру

    @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)
    Так что здря ругаетесь на форумчан, мужики усталина.
     
  16. markk72

    markk72 Нуб

    На плате ATmega32u4
     
  17. DetSimen

    DetSimen Guest

    IrRemote и Servo используют один и тот же таймер по умолчанию, надо их развести по разным. В библиотеке IRRemote памойму есть возможность указать использовать другой таймер. Но это не точно. Смотреть нада.
     
  18. ZAZ-965

    ZAZ-965 Гуру

    @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 */
     
     
  19. markk72

    markk72 Нуб

    У меня с новым IRremote становится слишком много ошибок. Так что я пока что с этим останусь. Проблему с вектором 17 решил только что, с помощью вашего совета. Но теперь у меня конфликт с библиотекой Tone и вектором 32, попробую также решить.
     
  20. markk72

    markk72 Нуб

    Хах. У меня таймеры закончились (3), все конфликтуют. Теперь другая проблема.