使用autoconf从二进制文件生成对象(.o)的自定义命令

Sat*_*pal 4 c++ linux automake autoconf objcopy

我们有一个项目(c ++),它需要在共享库中包含一个二进制文件.这是通过引用资源文件中的二进制文件在Windows上完成的.在Linux上可以通过使用objcopy把如图所示实现

问题是如何使用autoconf/automake自动化?存在Makefile.am和configure.ac文件.这是一项手动任务吗?

(也许这个问题需要在unix堆栈交换站点上?)

Jac*_*lly 6

您的二进制文件是否具有独特的扩展名?如果是这样,请参阅手册的后缀章节:

.bin.o:
        bin2o -o $@ $<
Run Code Online (Sandbox Code Playgroud)

然后你foo.binfoo_SOURCES变量中列出.

如果您没有独特的扩展名,请尝试以下方法:

foo_SOURCES = foo.c bar.c baz.c
foo_LDADD = foobin$(OBJEXT)

foobin$(OBJEXT): foobin
        bin2o -o $@ $<
Run Code Online (Sandbox Code Playgroud)

  • 在第二种情况下,您可能希望将`foobin $(OBJEXT)`添加到`CLEANFILES`,因此它被`make clean`删除. (2认同)