Вступить в клуб →
лёгкаявопросСборка, отладка и профилирование

Заголовок подключён, а линковщик пишет undefined reference

В проект добавили функцию: объявление в существующем заголовке, реализация в новом файле crc.cpp. Файл, который её вызывает, компилируется без единого предупреждения, а сборка падает так:

undefined reference to `crc16(unsigned char const*, unsigned long)'

Что произошло с наибольшей вероятностью?

  • Функцию нужно объявить как inline прямо в заголовке, иначе линковщик не найдёт её тело ни в одном объектном файле
  • Реализация не попала в сборку: файл не добавлен в список исходников цели или нужная библиотека не прилинкована
  • В заголовке отсутствует защита от повторного включения, поэтому объявление теряется при втором подключении
  • Заголовок подключён не первым: нарушен порядок директив include, и объявление не видно на момент вызова

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела