Я работал с teensy над многопоточным проектом, используя компиляцию openmp с помощью gcc, однако я присоединяюсь к проекту, который использует avr-gcc, который, похоже, не хочет компилировать или распознавать omp.h. Я получаю сообщение об ошибке avr-gcc: ошибка: нераспознанный параметр командной строки '-pthread', когда пытаюсь скомпилировать и не могу найти дополнительную информацию. Я нашел этот вопрос о том, что gcc-avr имеет более медленные обновления -- почему? но мне интересно, не добавила ли avr-gcc поддержку openmp или нет по той или иной причине, и есть ли обходной путь, не требующий от команды переключения компиляторов.
поддержка openmp pthread для avr-gcc
Ответы (1)
спасибо за указание, похоже, что avr-gcc не предоставляет заголовки, которые взаимодействуют с операционными системами, что, по-видимому, делает pthreads.
Поскольку сокеты — это функция, предоставляемая операционной системой, и вы компилируете код, работающий на чистом железе на микроконтроллере Arduino, на котором не работает операционная система, вся цель заголовка sys/socket.h сводится на нет.
Это относится к любому другому виду заголовков или библиотечных функций, взаимодействующих с операционной системой, таких как unistd.h, fcntl.h, pthread.h и т. д. На самом деле, avr-libc, стандартная библиотека C для AVR-GCC, делает не предоставлять такие заголовки.
Вам нужно будет просмотреть документацию avr-libc, чтобы узнать больше о предоставляемых заголовках и функциях, а также об их использовании.