Описание тега unresolved-external
"Неразрешенный внешний символ" - это ошибка компоновщика. Часто это означает, что у некоторой функции есть объявление, но нет определения.
Распространенной причиной этой ошибки является компиляция кода с использованием заголовков библиотеки, но невозможность связывания с кодом этой библиотеки: отсутствие библиотеки в команде связывания или выбор другой версии библиотеки.
Существует FAQ: что такое ошибка неопределенного эталона / неразрешенного внешнего символа и как ее исправить?. Если в вашем вопросе отсутствует полная команда компоновщика и нет доказательств того, что вы прочитали эти ответы, не удивляйтесь, если вы будете перенаправлены туда.
Как написать хороший вопрос
Создайте простейшую воспроизводимую программу, чтобы продемонстрировать проблему. Простой способ сделать это в C - взять адрес символа и использовать его:
#include <pthread.h> int main() { int (*a)(pthread_t) = pthread_detach; return !a; }
Покажите команду, используемую для связывания программы, и ее вывод:
gcc -std=c11 -fPIC unresolved-external.c -o unresolved-external
/tmp/user/1432/ccI38tid.o: In function `main': unresolved-external.c:5: undefined reference to `pthread_detach' collect2: error: ld returned 1 exit status