헤더에 따른 링크 옵션

hahah의 이미지

make file에 라이브러리를 추가할때 옵션을 걸게 되는데..

이런 라이브러리들과 그에 필요한 링크를 모아놓은 곳이 혹시 있나요?
( ==> -lpthread 와 같은.. )
( ==> -lm)

이런 옵션이 필요하다 안필요하다는 어떻게 판별하나요ㅠ

twinwings의 이미지

링크시 라이브러리 링크 옵션 빼보시면 됩니다. 만약 에러 메세지 발생 시, 가령, gcc의 경우 undefined reference

다시 넣으시면 됩니다. 보통 헤더파일을 보면 판단이 됩니다.

hahah의 이미지

헤더파일을 보면 어떻게 판단이 되나요ㅠ
iostream이나 stdio.h나 sys/socket 이런 헤더들은 링크 옵션이 없어도 되는데

왜 math.h나 pthread.h는 넣어야하는지..
직접 해보는 방법 말고는 알수 없나요?

qiiiiiiiip의 이미지

man 페이지를 보시면 됩니다. ( 물론 버전에 따라 설명이 없는 경우도 있겠지만요..)

$ man sin
SIN(3)                          Linux Programmer's Manual                         SIN(3)
 
NAME
       sin, sinf, sinl - sine function
 
SYNOPSIS
       #include <math.h>
 
       double sin(double x);
       float sinf(float x);
       long double sinl(long double x);
 
       Link with -lm.