将静态库链接到Apache模块

时间:2012-11-16 11:18:25

标签: c apache

我正在尝试Apache模块开发,因此我想知道如何将静态库链接到模块(如果可能的话)。

当然,它可以很好地编译和安装,并且在加载模块时Apache会失败。消息是:

Cannot load /usr/lib/apache2/modules/mod_example.so into server: /usr/lib/apache2/modules/mod_example.so: undefined symbol: zmq_socket

我要链接的库是zeromq,我正在使用apxs2生成的makefile。我在这里添加了-lzmq。如果我删除zmq相关代码,模块运行正常。

我的平台是Ubuntu 12.04 64位,gcc4.6.3。

1 个答案:

答案 0 :(得分:0)

好吧,显然生成的makefile不是个好主意。我用基本的编译命令替换了makefile引用,例如:

apxs2 -c -lzmq mod_example.c

alk在问题评论中的建议也可行(将库位置添加到LD_LIBRARY_PATH),因为我正在链接另一个与apache相关的库(apreq),它链接没有任何问题。