消息队列生成文件错误:未定义对“ mq_open”的引用
作者:互联网
即使我在我的Makefile中链接了-lrt,如下所示,我仍然得到对’mq_open’的未定义引用.请帮忙!
all:get1 iserv1
get: get1.c
gcc -Wall -o get1 get1.c -lrt
iserv: iserv1.c
gcc -Wall -o iserv1 iserv1.c -lrt
clean:
rm -fr *~ get1 iserv1
解决方法:
您的makefile错误
all:get1 iserv1
get: get1.c
gcc -Wall -o get1 get1.c -lrt
都具有get1和iserv1的先决条件.但是您创建了一个get目标和一个iserv目标.所以例如将使用默认的make规则编译get1,该规则不包含-lrt(如果您查看实际执行的gcc命令,则应显示该规则.)
您的makefile应该像这样:
all:get1 iserv1
get1: get1.c
gcc -Wall -o get1 get1.c -lrt
iserv1: iserv1.c
gcc -Wall -o iserv1 iserv1.c -lrt
clean:
rm -fr *~ get1 iserv1
标签:makefile,message-queue,linux 来源: https://codeday.me/bug/20191122/2061266.html