2013-08-27 36 views
0

我正在嘗試將ZMQ添加到c_icap。Automake LIBADD未鏈接

這是我的(這是從股票的makefile修改)Makefile.am:

pkglib_LTLIBRARIES=srv_bluvector_icap.la 
    INCLUDES = -I$(top_srcdir) 

    srv_bluvector_icap_la_LIBADD = /usr/local/lib/libzmq.la 

    srv_bluvector_icap_la_LIBADD = @[email protected] 
    srv_bluvector_icap_la_CFLAGS= -I../../include/ 
    srv_bluvector_icap_la_LDFLAGS= -module -avoid-version 
    srv_bluvector_icap_la_SOURCES = srv_bluvector_icap.c 

EXTRA_DIST= makefile.w32 srv_bluvector_icap.def 

這是輸出後,我運行make(從頂層做的./configure後):

/bin/sh ../../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../.. -I../..   -I../../include/ -D_REENTRANT -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -MT srv_bluvector_icap_la-srv_bluvector_icap.lo -MD -MP -MF .deps/srv_bluvector_icap_la-srv_bluvector_icap.Tpo -c -o srv_bluvector_icap_la-srv_bluvector_icap.lo `test -f 'srv_bluvector_icap.c' || echo './'`srv_bluvector_icap.c 
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../include/ -D_REENTRANT -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -MT srv_bluvector_icap_la-srv_bluvector_icap.lo -MD -MP -MF .deps/srv_bluvector_icap_la-srv_bluvector_icap.Tpo -c srv_bluvector_icap.c -fno-common -DPIC -o .libs/srv_bluvector_icap_la-srv_bluvector_icap.o 
mv -f .deps/srv_bluvector_icap_la-srv_bluvector_icap.Tpo .deps/srv_bluvector_icap_la-srv_bluvector_icap.Plo 
/bin/sh ../../libtool --tag=CC --mode=link gcc -I../../include/ -D_REENTRANT -g -O2 -Wall -D_FILE_OFFSET_BITS=64 -module -avoid-version -o srv_bluvector_icap.la -rpath /usr/local/lib/c_icap srv_bluvector_icap_la-srv_bluvector_icap.lo 
libtool: link: gcc -Wl,-undefined -Wl,dynamic_lookup -o .libs/srv_bluvector_icap.so -bundle .libs/srv_bluvector_icap_la-srv_bluvector_icap.o -O2 
libtool: link: (cd ".libs" && rm -f "srv_bluvector_icap.la" && ln -s "../srv_bluvector_icap.la" "srv_bluvector_icap.la") 

其中不包含任何zmq鏈接。

當我運行ICAP插件,我得到這個:

Loading service :bluvector path srv_bluvector_icap.so 
Found handler C_handler for service with extension:.so 
Error loading module srv_bluvector_icap.so:dlopen(/usr/local/c-icap/lib/c_icap/srv_bluvector_icap.so, 10): Symbol not found: _zmq_connect 
    Referenced from: /usr/local/c-icap/lib/c_icap/srv_bluvector_icap.so 
    Expected in: flat namespace 
in /usr/local/c-icap/lib/c_icap/srv_bluvector_icap.so 
Error while loading service srv_bluvector_icap.so 

其中,我相信意味着ZMQ沒有得到聯

那麼,我究竟做錯了什麼?

回答

1

您將要覆蓋LIBADD變量的值,通過設置兩次:

srv_bluvector_icap_la_LIBADD = /usr/local/lib/libzmq.la 
srv_bluvector_icap_la_LIBADD = @[email protected] 

相反,你應該這樣做:

srv_bluvector_icap_la_LIBADD = /usr/local/lib/libzmq.la 
srv_bluvector_icap_la_LIBADD+= @[email protected]