Makefile在Linux上链接Zeromq库的问题

时间:2014-01-27 13:20:05

标签: c++ makefile zeromq

我正在研究一个项目,并尝试编译我的代码。我刚把这个代码从windows(VC ++)转移到linux上,它在windows上工作得很好,但是我无法在linux上编译它。

该程序使用zeromq进行TCP连接,我在构建时遇到了多个错误。类型的错误:

/usr/local/include/zmq.hpp:372: undefined reference to `zmq_bind'
/usr/local/include/zmq.hpp:415: undefined reference to `zmq_msg_send'

我已经通过我的linux机器上的tarball安装了zeromq,并手动将zmq.hpp添加到/ usr / local / include文件夹中。我怀疑我在makefile中做错了什么,这就是我收到这些错误的原因。

我在创建makefile方面有点弱,所以如果有人可以查看我并告诉我makefile是否存在导致这些问题的明显问题,我将非常感激。这是我的makefile

C = g++
DEBUG = -g
CFLAGS = -g -Wall -std=c++11
LFLAGS = -L/usr/local/lib/

INCLUDES = -I/usr/local/

LIBS = -libzmq.la

SRCS = main.cpp NetworkTestServer.cpp

OBJS = $(SRCS:.cpp=.o)

EXECUTABLE = tester

all: $(SRCS) $(EXECUTABLE) 

$(EXECUTABLE): $(OBJS)
    $(CC) $(EXECUTABLE) -o $(EXECUTABLE) $(LIBS)

.cpp.o:
    $(CC) $(CFLAGS) $< -o $@

clean:
    $(RM) *.o *~ $(EXECUTABLE)

非常感谢

1 个答案:

答案 0 :(得分:2)

在我看来,您的LIBS定义是错误的。

通常,省略lib部分以及扩展名。所以,试试类似:

LIBS = -lzmq

如果不起作用,请确保此库包含在LFLAGS变量指定的位置。