制作和链接图书馆

时间:2014-02-04 14:35:28

标签: gcc makefile

我正在尝试编译一个使用zeromq的程序。 makefile的这一部分引用了zeromq库。

LIBS=-lzmq -ldl -lsqlite3 $(OPTLIBS)

我在ubuntu上,而库(libzmq.so)位于/ usr / local / lib中。我不明白lzmq的意思。图书馆是否在某处注册?如何定义lzmq所指的路径?

1 个答案:

答案 0 :(得分:2)

选项-lzmq是链接器标志-l,后跟参数zmq。链接器标志-l告诉链接器链接库zmq。链接器将使用该名称在各种目录中查找具有各种形式的库。例如,在典型的POSIX系统上,它将查找libzmq.so(共享库),后跟libzmq.a(静态库)。

它查找的目录是一组默认目录(通常/usr/local/lib是其中之一,但并非总是如此),以及在-L标志的链接行上指定的任何目录。因此,将-L/usr/local/lib添加到您的链接行(-lzmq之前)将使链接器搜索该库的/usr/local/lib

有关更多详细信息,请参阅编译器和链接器的文档。