#include <semaphore.h>
sem_t mutex;
int main (int argc, char * argv[])
{
sem_init (&mutex,0,1);
}
내가지고있어 다음 sem_init() 매뉴얼 페이지 당이 세마포어 코드가 실패하는 이유는 무엇입니까?
/tmp/ccAMFxDX.o: In function `main':
programaservidor.c:(.text+0x86): undefined reference to `sem_init'
collect2: ld returned 1 exit status
나는이 꽤 새로운 해요. -lrt 또는 -pthread와 연결하여 의미하는 것을 조금 더 자세히 설명 할 수 있습니까? – Unome
@ 링크가 무엇인지 더 잘 이해하려면 [이 링크] (http://en.wikipedia.org/wiki/Linker_%28computing%29)를 참조하십시오. gcc 명령에 전달 된'-l'옵션을 볼 때마다 실행 파일을 생성하는 데 필요한 객체 코드를 찾으려면 라이브러리를 찾아야한다는 지시어입니다. OP의 경우,'sem_init' 함수의 목적 코드는'pthread' 라이브러리에 있습니다. –
SiegeX
굉장한 말이 있는데, 주어진 코드는 make 파일로 싸서 실행하기 위해 -pthread를 추가해야했습니다. 감사! – Unome