如何将静态库和驱动程序编译链接起来?

发布于 2022-09-21 01:43:46 字数 78 浏览 22 评论 0

我写了一个驱动模块,公司有一个静态库,我的驱动模块需要用到静态库里面的一些函数,需要将静态库里面的函数编译进驱动里面,如何做?这样的makefile如何写?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

南风起 2022-09-28 01:43:46

自己参考一下其他makefile 的编写,一般makefile编写都会讲到这个的。

故笙诉离歌 2022-09-28 01:43:46

一般makefile都不会讲到这个,如果是用户抬的应用程序去链接静态库,我当然会了,但是驱动去链接静态库查了老半天了,也没找到,你说常见给我帖个makefile看看?

凡尘雨 2022-09-28 01:43:46

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 $@ $<
……

请止步禁区 2022-09-28 01:43:46

原帖由 dreamice 于 2008-9-5 16:25 发表
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)
……
...

不好意思,这样写似乎不太对

塔塔猫 2022-09-28 01:43:46

帮忙查查怎么写这个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?

痴梦一场 2022-09-28 01:43:46

现在测试了一下,如果别人不给源文件,只给个.o的可以链接起来,但是给库无论如何我也作不到,但是我觉得应该是可以作到的,因为静态库不就是.o组成的吗,.o能做到,.a的是不是也应该可以做到?

海夕 2022-09-28 01:43:46

这帖子好多天了。

_蜘蛛 2022-09-28 01:43:46

做成静态库,可以加选项gcc static xxxx

灰色世界里的红玫瑰 2022-09-28 01:43:46

原帖由 dreamice 于 2008-9-12 13:24 发表
做成静态库,可以加选项gcc static xxxx

我不是要做成静态库,我是想,别人给我一个静态库,我的驱动如何链接到静态库里面的函数,参见上面我贴的makefile

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文