GNU CoreUtils 命令源码重编译
来源:互联网 发布:淘宝波奇网 编辑:程序博客网 时间:2024/06/16 08:44
coreutils 是GNU下的一个软件包,包含linux下的 ls、pwd等常用命令。这些命令的实现要依赖于shell程序。
源码的下载地址可以到http://www.gnu.org/software/coreutils/这个网址下载;
我下载的版本是coreutils-8.27,在虚拟机ubuntu14.04下编译运行。
首先解压文件,进入coreutils-8.27目录,执行
./configure
进行环境配置,需要几分钟时间。
然后执行make命令,这一步会生成源程序中必需的一些头文件(如config.h).
然后进入src目录。
然后将你要重新改写的命令源程序
复制到一个文件夹下面,我放在了~/Desktop/GNU下,对其单独进行编译,需要将config.h等头文件目录软链接过来,否则编译会报错,预处理,运行:
gcc -E -I ~/Desktop/coreutils-8.27/lib/ -I ~/Desktop/coreutils-8.27/ -I ~/Desktop/coreutils-8.27/src -o pwd.i pwd.c
你需要修改你自己的对应的路径版本号、文件名。
编译运行:gcc -c pwd.i -o pwd.o
将预编译文件pwd.i编译成.o文件:-c参数告诉gcc将源代码编译成.o文件
链接静态库libcoreutils.a、动态库libcrypt.so,生成可执行文件pwd:
gcc -L ~/Desktop/coreutils-8.27/lib -L /usr.lib/pwd.o - o pwd -lcoreutils lcrypt
这样就OK了。
看一下文件
我在pwd(输出当前工作目录)程序里添加了一句输出hahahahahaha,正常运行
编译之前,需要把源文件中所有关于Version内容的语句都注释掉,不然会报错,undefined reference to “Version”
,切记。或者你有更好的解决办法。
阅读全文
0 0
- GNU CoreUtils 命令源码重编译
- GNU Coreutils
- coreutils学习——单独编译源码
- 编译Coreutils
- GNU Coreutils package
- gnu coreutils内核工具
- Coreutils - GNU core utilities
- coreutils交叉编译方法
- Use KLEE to Test GNU Coreutils
- 交叉编译ARM平台coreutils
- coreutils
- MacOSX编译coreutils出错的修改
- MacOSX编译coreutils出错的修改
- coreutils 交叉编译碰到的问题
- yes.c源码分析(coreutils-8.9)
- 重编译Linux命令源代码
- 编译完android源码并且已经make sdk之后,重启不能调用emulator命令解决方案
- 每天一个linux命令之coreutils包: [命令
- Java基础学习笔记 第一部分 part 5*
- java 发送http与https请求
- Spring Cloud 学习笔记(1)-- 入门,特征,配置
- Linux(Centos)之安装Nginx及注意事项(转载)
- 树
- GNU CoreUtils 命令源码重编译
- Jenkins 修复
- AndroidStudio使用过程中java类突然报红,但是程序可运行
- 一个java菜鸟对sql语句优化的总结
- Doctype作用?
- Android与JS交互---内嵌框架iframe
- 组策略指派Office2003分发,Active Directory系列之二十三
- oracle dg闪回区满导致同步停止
- 真机测试问题 code signing is required for product type 'Application' in SDK 'iOS 10.3'