Makefile 使文件链接问题

Makefile 使文件链接问题,makefile,shared-libraries,Makefile,Shared Libraries,我正在为kamailio开发一个模块,一个开源PBX。我试图将我的c代码编译成一个共享对象文件。代码依赖于Kamailio中的其他共享对象,因此我需要链接它们,否则Kamailio将无法加载模块而不会出错 这是我的Makefile: include ../../Makefile.defs auto_gen= NAME=libproto.so CC=gcc CFLAGS= -g -Wall -fPIC -I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_

我正在为kamailio开发一个模块,一个开源PBX。我试图将我的c代码编译成一个共享对象文件。代码依赖于Kamailio中的其他共享对象,因此我需要链接它们,否则Kamailio将无法加载模块而不会出错

这是我的Makefile:

include ../../Makefile.defs

auto_gen=
NAME=libproto.so
CC=gcc
CFLAGS= -g -Wall -fPIC -I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_64/include/ -I/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_64/include/linux -I/usr/local/lib64/kamailio/
LDFLAGS=-shared
LIBS= -L'$(LD_LIBRARY_PATH)' -ljvm -L/usr/local/src/kamailio-4.3/kamailio/modules/kam_module_elogj -L/usr/local/lib64/kamailio/
DEFS+=-DKAMAILIO_MOD_INTERFACE
include ../../Makefile.modules


SOURCE=jni_wrapper.c ProtoType.c
OBJECTS=$(SOURCE:.c=.o)

all: $(SOURCE) $(NAME)

%.o: %.c
        $(CC) $(CFLAGS) -c $(LIBS) $<

clean:
        rm -f $(EXEC); rm -f *~; rm -f .*.swp; rm -f .*.swo; rm -f *.o

java:
        javac ProtoType.java
        jar cf ProtoType.jar ProtoType.class
        javap -s -p ProtoType > sigs.txt
        cat sigs.txt
不幸的是,这仍然没有与我的共享对象文件链接。因此,当kamailio加载模块时,它会抱怨未定义的符号


有人看到我的Makefile有什么问题吗?

如果需要链接Kamailio的内部库,应该使用Makefile变量SERLIBPATH和seru LIBS。例如,查看alias_db模块的makefile,它需要连接到数据库,因此需要链接到srdb1库(抽象db api)——相关代码段:

SERLIBPATH=../../lib
SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1

安装kamailio后,不能将模块链接到kamailio内部库。

需要链接到的库需要
-l
参数。你似乎没有很多这样的东西。你还需要更多吗?也就是说,我不希望一个软件模块需要从应用程序本身链接库。
SERLIBPATH=../../lib
SER_LIBS+=$(SERLIBPATH)/srdb1/srdb1