Некоторые причины возникновения ошибки неопределённой ссылки на C++:
- Отсутствие определения функции. 13 Если предоставить прототип функции, но забыть дать её определение, при создании ссылки на эту функцию компоновщик не найдёт её определение. 1
- Несвязанные объектные файлы. 1 Если определять класс в отдельном файле, его нужно включить в файл основной функции, чтобы связать с основным объектным файлом при компоновке программы. 1
- Неуспешная компиляция зависимых файлов. 1 Для успешной генерации исполняемого файла необходимо скомпилировать все зависимости перед началом фазы компоновки. 1 Если какие-то зависимые объектные файлы отсутствуют, компоновщик выдаст ошибку неопределённой ссылки. 1
Чтобы избежать таких проблем, программисту нужно правильно определять все идентификаторы (например, функции, переменные и объекты). 1