вот так:
// Defined in libhal_protected_CM4_GCC.a
void get_id(uint8_t id_buff[8]);
Сама функция имплементирована в скомпилированной библиотеке.
Как на плюсах её имплементировать? Я пробовал
void get_id(uint8_t id_buff[8]) {}
с результатом
libfirmware.so: undefined reference to `get_id'
extern "C" в .cpp
А если я в ней плюсовые захочу использовать функции?
Используй на здоровье
О, круто, разрешилась проблема. Я думал extern C не даст плюсовые использовать этого
extern "C" исключительно про магнлинг. Использовать C++ типы в сигнатуре не даст, конечно, а в теле - можно
Так, теперь у меня /usr/bin/ld: CMakeFiles/FirmwareEmulator.dir/src/main.cpp.o: in function `tbb::interface7::task_arena::current_thread_index()': /usr/include/tbb/task_arena.h:449: undefined reference to `tbb::interface7::internal::task_arena_base::internal_current_slot()' Я без понятия, откуда tbb взялся. Интеловского tbb в коде нет 100%
так путь же указан
а как отследить, кто этот хедер включает? Я просто щас эмулирую прошивку, которая ну вот прям никак не может быть завязана на этом
main.cpp
ну там может внутри другого хедера
Блин. Я об этом сразу как-то не подумал
не находит, остановился на tbb/partitioner.h
ну теперь ищите кто использует этот хедер
Бинго 1. Редактируешь непонятный заголовок 2. Добавляешь #error иже еси на небеси 3. Компилируешь ... 4. Получаешь стек!!!
Обсуждают сегодня