РЕШЕНО Ошибка в примере из библиотеки apds9190

Тема в разделе "Arduino & Shields", создана пользователем Ramterdam, 19 ноя 2019.

  1. Ramterdam

    Ramterdam Гик

    Вообщем, пьеса с датчиком расстояния apds9190 продолжается. Я уже так обрадовался, когда полностью восстановил пример из скачанной библиотеки, но видимо, не тут было!
    При компиляции ниже приведённого кода, выдаёт ошибку(напомню, что это пример из самой библиотеки):
    C:\Users\4580~1\AppData\Local\Temp\ccAuKifv.ltrans0.ltrans.o: In function `main':
    C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:43: undefined reference to `setup'
    C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/main.cpp:46: undefined reference to `loop'
    collect2.exe: error: ld returned 1 exit status
    exit status 1
    Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560.

    Никак не могу понять в чём здесь проблема и что Ардуинке не нравится в библиотеки с GitHub?
    Сайт откуда взялась эта библиотека: https://github.com/njhale/apds9190
    Код:
    Код (C++):

    #include <Arduino.h>
    #include <Wire.h>
    #include <apds9190.h>
    APDS9190 *proximity_sensor;
    int proximity = 0;
    void setup() {
      Serial.begin(9600);  // initialize hardware serial
      Serial.println("Setup!");
      proximity_sensor = new APDS9190();
      proximity_sensor->Init();  // initialize the APDS
    }
    void loop() {
      //uint16_t proximity = proximity_sensor->Proximity();
      Serial.print("Proximity: ");
      Serial.println(proximity);
      delay(20);
    }
     
  2. Asper Daffy

    Asper Daffy Иксперд

    Файл-то как называется? Как в примере "main.cc"?
     
  3. Ramterdam

    Ramterdam Гик

    да, так точно
     
  4. b707

    b707 Гуру

    Уважаемый - вот вы и в прошлой и в этой теме пишете "восстановил код из библиотеки", "восстановил пример..."
    Поясните, что вы имеете в виду под этим? Когда я запускаю примеры из библиотек, мне ничего "восстаноавливать" не приходится
     
  5. b707

    b707 Гуру

    так переименуйте его
     
  6. Ramterdam

    Ramterdam Гик

    он переименован, но ошибка есть
     
  7. Ramterdam

    Ramterdam Гик

    Восстанавливать, значит из файла Блокнот сделать файл .ino для Ардуинки ИДЕ
    т.е. приводить в программный вид, вот
     
  8. b707

    b707 Гуру

    то есть "восстанавливать" - это просто переименовать файл. например, ".txt" в ".ino" ? - ну так и пишите "переименовать", зачем тут что-то восстанавливать?
     
  9. SergeiL

    SergeiL Гуру

    Нужно в настройках проводника включить "показывать расширение". Тогда будет легче :)
     
    b707 нравится это.
  10. b707

    b707 Гуру

    во что он переименован?
    Можете по пунктам написать, как вы пытаетесь компилировать этот пример?
    Вот скачали из библиотеки файл main.cc - что дальше?
     
  11. b707

    b707 Гуру

    а что, бывает что оно не видно???? О времена о нравы...
     
    ИгорьК, Daniil и SergeiL нравится это.
  12. SergeiL

    SergeiL Гуру

    Так по умолчанию не видно. Каждый раз после установки Win приходится ставить все наоборот:
    Снимать галки с того, что помечено как скрывать, и ставить, на то что показывать:mad:
     
    Daniil нравится это.
  13. parovoZZ

    parovoZZ Гуру

    а файл main.cpp в библиотеках там для чего? И наверняка в этих файлах калбеки сетуп и луп.
     
  14. Ramterdam

    Ramterdam Гик

    не очень вас понял
     
  15. Ramterdam

    Ramterdam Гик

    1. Я открыл пример из библиотеки
    2. Переименовал, сохранил под новым именем на Рабочий стол
    3. Нажал на кнопку Компилировать
    4. После чего выдаёт выше указанную ошибку
     
  16. b707

    b707 Гуру

    Ничего не понял. Чтож вы вечно загадками пишете?
    - "Открыл пример из библиотеки" - Чем открыл?
    - "переименовал" - в какое имя? - сохранил на Рабочий стол - нафига??? кто будет папку для скетча создавать?



    Я бы делал так
    1.Создал в любом месте диска папку mysketch
    2. Скопировал в нее файл main.cc из библиотеки
    3. Переименовал main.cc в папке mysketch в файл mysketch.ino
    4. Запустил ардуино ИДЕ. открыл скетч mysketch.ino и нажал компилировать
     
    Ariadna-on-Line, Daniil и DetSimen нравится это.
  17. Asper Daffy

    Asper Daffy Иксперд

    А внутри библиотеки файл ".сс" переименовал?
     
  18. Ramterdam

    Ramterdam Гик

    1. Для живущих в прошлом веке: при сохранении, скетч сам создаёт для себя папку
    2. Переименовал в имя mysketch
     
  19. Ramterdam

    Ramterdam Гик

    Зачем?
     
  20. Ramterdam

    Ramterdam Гик

    C:\Users\4580~1\AppData\Local\Temp\ccZdBG0e.ltrans0.ltrans.o: In function `main':
    <artificial.text.startup+0x1ea): undefined reference to `APDS9190::Init()'
    <artificial.text.startup+0x200): undefined reference to `APDS9190:roximity()'
    collect2.exe: error: ld returned 1 exit status
    exit status 1
    Ошибка компиляции для платы Arduino/Genuino Mega or Mega 2560.


    Тем не менее, ошибка присутствует