如何将静态库和驱动程序编译链接起来?
我写了一个驱动模块,公司有一个静态库,我的驱动模块需要用到静态库里面的一些函数,需要将静态库里面的函数编译进驱动里面,如何做?这样的makefile如何写?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我写了一个驱动模块,公司有一个静态库,我的驱动模块需要用到静态库里面的一些函数,需要将静态库里面的函数编译进驱动里面,如何做?这样的makefile如何写?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(9)
自己参考一下其他makefile 的编写,一般makefile编写都会讲到这个的。
一般makefile都不会讲到这个,如果是用户抬的应用程序去链接静态库,我当然会了,但是驱动去链接静态库查了老半天了,也没找到,你说常见给我帖个makefile看看?
CFLAGS := -D_REENTRANT -DNDEBUG -Wall -I$(ROOTDIR)/user/iproute2-2.6.11/include $(CFLAGS)
……
LDLIBS := -L$(ROOTDIR)/user/iproute2-2.6.11/lib -lpthread -lnetlink -lutil -ltrum $(LDLIBS)
……
$(CC) $(CFLAGS) -c -o $@ $<
……
不好意思,这样写似乎不太对
帮忙查查怎么写这个makefile,我找了一下午也没解决这个问题,我的makefile是这样的:
ifneq ($(KERNELRELEASE),)
obj-m := audio_driver.o
audio_driver-objs := audio.o string_oper.o
else
#KERNELSRC := /home/akaedu/linux-2.6.17.14
#KERNELSRC := /usr/src/linux
KERNELSRC := /usr/src/linux-headers-2.6.22-14-generic
modules:
make -C $(KERNELSRC) SUBDIRS=$(PWD) $@
clean:
rm -f *.o *.ko *.mod.c *~
endif
我准备把string_oper.o做成静态库,然后再编译,怎么该这个makefile?
现在测试了一下,如果别人不给源文件,只给个.o的可以链接起来,但是给库无论如何我也作不到,但是我觉得应该是可以作到的,因为静态库不就是.o组成的吗,.o能做到,.a的是不是也应该可以做到?
这帖子好多天了。
做成静态库,可以加选项gcc static xxxx
我不是要做成静态库,我是想,别人给我一个静态库,我的驱动如何链接到静态库里面的函数,参见上面我贴的makefile