【问题标题】:message queue makefile error: undefined reference to `mq_open'消息队列生成文件错误:未定义对“mq_open”的引用
【发布时间】:2013-10-25 18:10:00
【问题描述】:
即使我在 Makefile 中链接了-lrt,如下所示,我仍然收到undefined reference to '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
【问题讨论】:
标签:
linux
makefile
message-queue
【解决方案2】:
你的 makefile 错误
all:get1 iserv1
get: get1.c
gcc -Wall -o get1 get1.c -lrt
all 具有 get1 和 iserv1 的先决条件。但是您创建了一个get 目标和一个iserv 目标。所以例如get1 将使用默认的 make 规则进行编译,该规则不包括 -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