我正试图编译我的程序(这是一个使用共享内存的服务器),当我试图删除SIGINT的信号处理程序中的共享内存(shmctl())时,我一直得到

undefined reference to `schmctl'

我四处寻找,发现这通常需要
 gcc -o server server.c -lrt

编译,但即使这样我还是会得到同样的错误。
有谁能帮助我理解我应该做什么,什么-轻轨或什么是需要的手段?

最佳答案

-lrt表示您正在链接librt.a库。要消除错误,您应该找到定义符号shmctl的库,然后将其传递到gcc

关于c - 未定义对“shmctl”的引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8304871/

10-13 23:57