
正文
使用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.
大功告成,达到了预期的效果。






