неопределенная ссылка на `shmctl ' - PullRequest
0 голосов
/ 29 ноября 2011

Я пытаюсь скомпилировать свою программу (это сервер, который использует разделяемую память), и когда я пытаюсь удалить разделяемую память (shmctl()) внутри обработчика сигнала для SIGINT, я продолжаю получать

undefined reference to `schmctl'

Я искал вокруг и увидел, что для этого обычно требуется что-то вроде

 gcc -o server server.c -lrt 

для компиляции, но даже тогда я продолжаю получать ту же ошибку. Может ли кто-нибудь помочь мне понять, что я должен делать, и что означает -lrt или что-то еще необходимое?

1 Ответ

3 голосов
/ 29 ноября 2011

-lrt означает, что вы связываетесь с библиотекой librt.a.Чтобы избавиться от вашей ошибки, вы должны найти библиотеку, в которой определен символ shmctl, а затем передать ее в gcc.

...