使用objcopy实现将文件编译进执行程序
一、简介
工作中可能遇到将一个文件编译进执行程序的需求,例如bin文件、jpg文件等等。实现的方法可以使用脚本来将文件内容写入一个新的C源文件数组,达成编译进程序的目的。
现在介绍一种简单、快捷的方法来实现需求,具体的操作如下文所述。
二、环境准备
<file> 文件内容:
This is a test.
<test.c> 文件内容:
#include <stdio.h> extern unsigned char _binary_file_start[];
extern unsigned char _binary_file_end[]; int main()
{
unsigned char *p = _binary_file_start;
unsigned char *end = _binary_file_end; while(p != end)
{
printf("%c", *p++);
} return ;
}
三、操作指令
将文件内容插入 <file.o>:
objcopy -I binary -O elf64-x86- -B i386 file file.o
编译源文件:
gcc test.c file.o
四、程序运行
# ./a.out
This is a test.
大功告成,达到了预期的效果。
使用objcopy实现将文件编译进执行程序的更多相关文章
- 将IDEA maven项目中src源代码下的xml等资源文件编译进classes文件夹
如果使用的是Eclipse,Eclipse的src目录下的xml等资源文件在编译的时候会自动打包进输出到classes文件夹.Hibernate和Spring有时会将配置文件放置在src目录下,编译后 ...
- IDEA将Maven项目中指定文件夹下的xml等文件编译进classes
eclipse下面创建的Maven项目,使用mybatis.eclipse里面能正常启动,在idea中一直卡在maybatis 加载位置. 1.首先是不报错也没反应.这个时候需要我们重写SqlSess ...
- linux设备驱动程序——将驱动程序编译进内核
linux驱动程序--将驱动程序编译进内核 模块的加载 通常来说,在驱动模块的开发阶段,一般是将模块编译成.ko文件,再使用 sudo insmod module.ko 或者 depmod -a mo ...
- C文件编译、链接指令
通过mac终端 输入指令: cc -c 文件名.c 可以把C文件编译成.o文件(其实是2进制文件) 然后通过指令 cc 文件名.o 把.o文件链接C文件所需要的C语言的底层库,成为可以直接运行的lin ...
- 【转】6.4.6 将驱动编译进Linux内核进行测试
原文网址:http://www.apkbus.com/android-98520-1-1.html 前面几节都是将Linux驱动编译成模块,然后动态装载进行测试.动态装载驱动模块不会随着Android ...
- 【转】Linux驱动模块编译进内核中
原文网址:http://blog.chinaunix.net/uid-29287950-id-4573481.html BQ27501驱动编译进内核 一. 驱动程序编译进内核的步骤 在 l ...
- MPC8313ERDB不新鲜pkg包裹,把文件放进Ramdisk
MPC8313ERDB不新鲜pkg包裹,把文件放进Ramdisk 经ltib编译器生成rootfs.ext2.gz.uboot它可以直接uboot采用.假设我们编写了相应的外部文件把Ramdisk往里 ...
- 将MPLS编译进linux内核中
系统环境:linux kernel 2.6.35.(此环境是上一篇文章中将ubuntu内核替换后的环境) 编译过程如下: 1)首先需要下载patch文件:linux-kernel-v2.6.35-mp ...
- JAVA 文件编译执行与虚拟机(JVM)简单介绍
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 ...
随机推荐
- 网络基础知识(http请求)
http请求的过程 域名解析----TCP连接 ----发送请求-----响应请求----获取html代码----浏览器渲染 TCP是主机对主机层的控制传输协议,提供可靠的连接服务 TCP的三次握手 ...
- 我永远讨厌gch文件
一个学期没写博客了. 今天写OOP作业见鬼了, 调了半天. 我写了一个match.h和一个match.cpp, 然后match.cpp里面#include"match.h", 然后 ...
- 项目集成Spring Security
前言 之前写的 涂涂影院管理系统 这个 demo 是基于 shiro 来鉴权的,项目前后端分离后,显然集成 Spring Security 更加方便一些,毕竟,都用 Spring 了,权限管理当然 S ...
- 学习Spring-Data-Jpa(八)---定义方法查询
1.查询策略 spring-data一共有三种方法查询策略: QueryLookupStrategy.Key.CREATE,尝试根据方法名进行创建.通用方法是从方法名中删除一组特定的前缀,然后解析该方 ...
- inertia 服务端驱动的spa 开发框架
inertia 可以让我们开发server 驱动的单页面应用开发,从目前的github代码来看,代码量并不多,相关的文档也还比较少 introducing-inertia-js 这个连接值得看下 参考 ...
- mysql left()函数
mysql> select * from test; +----+------------+-------+-----------+ | id | name | score | subject ...
- mysql 选择所有同学名字
mysql> select * from test; +----+----------+-------+-----------+ | id | name | score | subject | ...
- 「HNOI2016」序列
传送门 Description 有 \(q\) 个询问,每个询问给定两个数\(l\) 和\(r\),求 \(a[l:r]\) 的不同子序列的最小值之和 Solution 校内模拟赛用了这道题,但是莫 ...
- RocketMq重复消费问题排查
前情 出现了重复消费的问题,同一个消息被重复消费了多次,导致了用户端收到了多条重复的消息,最终排查发现,是因为消费者在处理消息的方法onMessage中有异常没有捕获到,导致异常上抛,被consume ...
- tomcat监控工具-probe
概述 今天给大家介绍一款开袋即食的性能监控工具,居家性能测试必备! tomcat监控工具:probe tomcat probe是一个开源的监控tomcat运行状态工具,可以实时查看项目运行的情况,监控 ...