只有.o文件如何编译到 内核中去

qq_29594517 2017-09-20 06:48:52
芯片厂商提供的驱动为编译好的softd.o文件(他们不想给源码),如何把它编译到 boot image 里边去?
...全文
1418 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_43178250 2020-05-07
  • 打赏
  • 举报
回复
直接在Makefile里添加就OK了:

obj-y += softd.o
之子不知名 2020-04-28
  • 打赏
  • 举报
回复
Linux 驱动的编译主要修改驱动代码所在目录下的 Makefile 和 Kconfig 文件。 对着其他驱动照着写就可以了,比如: Kconfig config YOUR_DRIVER default y (默认值 y 对应编译进内核) Makefile: obj-$(CONFIG_YOUR_DRIVER) += softd.o 编译后,查看 Linux 源码顶层目录下的 .config 文件,确认 CONFIG_YOUR_DRIVER 的值是不是 y 。 如果是,就证明已经成功编译进内核。
Cyril Taylor 2020-04-24
  • 打赏
  • 举报
回复
把softd.o文件名改为softd.o_shipped,然后再makefile里面加obj-y += softd.o就可以了
jklinux 2017-09-21
  • 打赏
  • 举报
回复
makefile里直接写: obj-y += softd.o 这样就可以了
Hello Worm 2017-09-21
  • 打赏
  • 举报
回复
这里给一个例子:
gcc -c test1.c -o test1.o
gcc -c test2.c -o test2.o
gcc test1.o test2.o -o test
可以看到 -c选项保证编译器只编译不链接,而不加任何选项的gcc命令可以把若干个.o文件链接成目标问题。 另外,对于.o文件,理论上你是可以通过objdump -t softd.o 看到他们在该文件中创建的函数(其实已经是符号了),知道这个信息会有利于你编译(连接)通不过时可以找到具体原因。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
主要是开发驱动技术
社区管理员
  • 驱动程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧