• 使用objcopy实现将文件编译进执行程序


    一、简介 

     工作中可能遇到将一个文件编译进执行程序的需求,例如bin文件、jpg文件等等。实现的方法可以使用脚本来将文件内容写入一个新的C源文件数组,达成编译进程序的目的。

     现在介绍一种简单、快捷的方法来实现需求,具体的操作如下文所述。

    二、环境准备

     <file> 文件内容:

     This is a test.

     <test.c> 文件内容:

     1 #include <stdio.h>
     2 
     3 extern unsigned char _binary_file_start[]; 
     4 extern unsigned char _binary_file_end[]; 
     5 
     6 int main()
     7 {
     8     unsigned char *p = _binary_file_start;
     9     unsigned char *end = _binary_file_end;
    10 
    11     while(p != end)
    12     {
    13         printf("%c", *p++);
    14     }
    15 
    16     return 0;
    17 }

     三、操作指令

     将文件内容插入 <file.o>:

     objcopy -I binary -O elf64-x86-64 -B i386 file file.o

     编译源文件:

     gcc test.c file.o

     四、程序运行

    # ./a.out
    This is a test.

     大功告成,达到了预期的效果。

  • 相关阅读:
    VMware Workstation Pro下载密钥
    hypervisor
    Xmanager6 下载地址
    linux常用命令
    linux常用
    查看机器端口信息
    windows下快捷键
    SpringMVC学习笔记整理
    2017面试题收集
    oracle 常用知识点整理
  • 原文地址:https://www.cnblogs.com/GyForever1004/p/11852427.html
Copyright © 2020-2023  润新知