iptables :根据库libiptc,自写库librtc,并且使用automake修改makefile文件
来源:互联网 发布:杭州软件外包公司 编辑:程序博客网 时间:2024/05/22 12:58
出于项目需要,要修改iptables源代码。自己对比着libiptc库写了一个librtc库,然后要想成功编译和连接,就必须修改Makefile文件。网上看了一下资料,iptables的Makefile文件是用autotools这个工具写成的,学习了一下autotools以及相关文件的语法。修改了相关文件,最后编译链接运行成功。记录如下:
autotools这个工具的使用网上有很多教程。使用方法不再赘述。
实际上使用过程中需要自己修改和编写的只有两个文件:configure.ac(或者叫configure.in)和Makefile.am。
所做的工作:
- 修改了主目录下的configure.ac:
AC_CONFIG_FILES([Makefile extensions/GNUmakefile include/Makefile iptables/Makefile iptables/xtables.pc iptables/iptables.8 iptables/ip6tables.8 iptables/iptables-extensions.8.tmpl libipq/Makefile libipq/libipq.pc libiptc/Makefile libiptc/libiptc.pc libiptc/libip4tc.pc libiptc/libip6tc.pc librtc/Makefile librtc/librtc.pc librtc/librt4c.pc librtc/librt6c.pc libxtables/Makefile utils/Makefile include/xtables-version.h include/iptables/internal.h])
7、8两行为加入的代码
- 修改了主目录下的Makefile.am:
SUBDIRS = libiptc libxtables librtcif ENABLE_DEVELSUBDIRS += includeendifif ENABLE_LIBIPQSUBDIRS += libipqendifSUBDIRS += utils# Depends on libxtables:SUBDIRS += extensions# Depends on extensions/libext.a:SUBDIRS += iptables
即在SUBDIRS中加入了 librtc
- 修改了include目录下的Makefile.am:
nobase_include_HEADERS += \ libiptc/ipt_kernel_headers.h libiptc/libiptc.h \ libiptc/libip6tc.h libiptc/libxtc.h libiptc/xtcshared.h \ librtc/librt4c.h librtc/librt6c.h
即在最后一行加入了librtc/librt4c.h librtc/librt6c.h
在librtc文件夹下新建:Makefile.am 、librtc.pc、librt4c.pc、librt6c.pc。其中的语法内容与对应的libiptc的大同小异。
有了上面的几步,就能够生成自己写的库:librt4c.la 、librt6c.la 、librtc.la,接下来在用到这些库的地方链接库即可。
最后修改iptables文件夹下的Makefile.am文件:
xtables_multi_LDADD += ../libiptc/libip4tc.la ../extensions/libext4.a ../librtc/librt4c.la...xtables_multi_LDADD += ../libiptc/libip6tc.la ../extensions/libext6.a ../librtc/librt6c.la
即加入librt4c.la和librt6c.la两个库。因为这两个库是运行iptables.o/ip6tables.o 和 iptables-standalone.o/ip6tables-standalone.o所必须要链接的库,否则我们自己的写的函数是找不到定义的。
1 0
- iptables :根据库libiptc,自写库librtc,并且使用automake修改makefile文件
- 使用automake来写makefile
- automake 使用库文件
- Libiptc库(一)
- Linux下使用libiptc库编程下发规则
- automake 生成动态链接库 - automake&Makefile
- 使用automake自动生成makefile文件(中)
- 使用autoconf和automake生成Makefile文件
- 使用Automake生成Makefile
- 教你如何使用automake生成Makefile文件
- 使用automake等命令自动生成Makefile文件
- 教你如何使用automake生成Makefile文件
- 如何使用autoconf,automake,libtool自动生成Makefile文件
- automake生成makefile和mpicc链接库
- automake:自动生成makefile文件
- automake自动生成makefile文件
- 《跟我一起写makefile》(笔记5--makefile中的条件判断和库文件使用)
- 【转帖】使用Automake生成Makefile
- IOS系列-UIProgressView控件用法
- linux 僵尸进程和孤儿进程的简要介绍
- LeetCode - 119. Pascal's Triangle II
- Mybatis关联查询
- thinkPHP 报错
- iptables :根据库libiptc,自写库librtc,并且使用automake修改makefile文件
- 移动办公系统的定义
- Leap Motion 之Unity 开发指南(二. 开发架构和SDK)L
- Android 使用Canvas绘制可编辑倒车线
- java 加密之MD示例
- 剑指offer-面试9:斐波那契数列(递归和循环)
- 你真的了解iOS代理设计模式吗?
- java 时间戳转换为 时间或者日期
- [SublimeText]_[Markdown]_[使用SublimeText编写Markdown文档]