【问题标题】:Automake: embedding text files in binary targetAutomake:在二进制目标中嵌入文本文件
【发布时间】:2011-10-18 14:54:12
【问题描述】:

我需要在二进制文件中嵌入多个文本文件。目前通过在 configure.in 脚本中添加两行来完成“清理”并对 $target.o 文件执行 objcopy。不要问为什么需要它,在这个应用程序中,它就是。

我想要做的是编写一些 automake (Makefile.am) 定义,将这些文本文件列为源并告诉 make 将它们 objcopy 到 *.o我需要与最终目标链接的文件。我也可以将它们添加到我想要的 CLEANFILES 中。

现在,我知道我说的是 final_LDADD,但我找不到告诉 automake/configure 执行该技巧的方法。

帮助...

【问题讨论】:

    标签: automake objcopy


    【解决方案1】:

    类似:

    libxxx.a : text1.o text2.o
        $(AR) cru $@ $^
    
    text1.o : text1.txt
        $(OBJCOPY) $< $@
    text2.o : text2.txt
        $(OBJCOPY) $< $@
    
    ...
    
    final_LDADD = libxxx.a
    
    ...
    
    CLEANFILES += libxxx.a text1.o text2.o
    

    【讨论】:

      【解决方案2】:

      稍微修改ldav1s的解决方案:

      object_files = file0.o file1.o file2.o ... fileN.o
      
      all:
          for SQL in $$(echo ${object_files} | sed -r 's~\.o\b~~g'); do \
              $(OBJCOPY) $$SQL $$SQL.o; \
          done;
      
      CLEANFILES = ${object_files}
      

      【讨论】:

      • 请注意,这将按顺序执行所有objcopy 进程,而不是并行执行。
      猜你喜欢
      • 1970-01-01
      • 2010-10-27
      • 1970-01-01
      • 2019-02-21
      • 2011-09-04
      • 2012-05-16
      • 2012-12-19
      • 2020-02-08
      • 2020-01-06
      相关资源
      最近更新 更多