消息队列makefile错误:未定义引用`mq_open'

时间:2013-10-17 09:58:53

标签: linux makefile message-queue

即使我在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

2 个答案:

答案 0 :(得分:3)

你的makefile错了

all:get1 iserv1
get: get1.c
    gcc -Wall -o get1 get1.c -lrt

all的先决条件为get1iserv1。但您创建了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

答案 1 :(得分:0)

注意-lrt应该不在中间。