Заголовочный файл просто объявляет, что такое функции pthread и как их следует вызывать.-lpthread
ссылки на саму библиотеку, содержащую фактические функции.
Компилятор не знает, как вы собираетесь разрешать функции в pthread.h
.Возможно, вы захотите использовать статическую библиотеку, предоставляемую системой, некоторую совместимую реализацию - черт, вы можете реализовать их самостоятельно в другом исходном файле.Это зависит от компоновщика и не касается компилятора.