Ответы пользователя по тегу C++
  • Как подключать библиотеки на лету в С++?

    @kacejot
    Вам будут интересны следующие статьи:
    https://habrahabr.ru/post/106107/
    https://habrahabr.ru/post/303032/
    Ответ написан
    Комментировать
  • Почему не видит функцию из библиотеки в Ардуино?

    @kacejot
    Ваша программа пытается искать определение для
    extern void Idle(void);
    в скомпилированном файле библиотеки. Поскольку функция с модификатором inline определена в исходном файле, то, при компиляции, на каждое место, где была вызвана эта функция, будет подставлено ее тело, но (!) в границах только этого объектного файла, который собирается из данного исходного файла. В самом объектном файле функции нет (она служит лишь как способ инстанцирования кода, без сдвигов по стеку вызова), поэтому мы не можем взять ее адрес, чтобы другие объектные файлы могли ее импортировать. Есть лишь инструкции процессора, которые были подставлены для каждого вызова этой функции.

    Если же перенести реализацию в заголовочный файл (который поставляется с нашей библиотекой), то любой вызывающий код, который включает этот заголовочный файл, будет иметь доступ к реализации. Поэтому у Вас все и заработало.
    Ответ написан
    Комментировать