2011-06-23 32 views
4

我们有一个项目(C++),它需要将二进制文件包含到共享库中。这是通过引用资源文件中的二进制文件在Windows上完成的。在Linux上可以通过使用objcopy来实现,如图所示here使用autoconf从二进制文件生成对象(.o)的自定义命令

问题是如何使用autoconf/automake自动执行此操作?存在Makefile.am和configure.ac文件。这是一个手动任务吗?

(也许这个问题必须在unix堆叠交换的网站?)

回答

6

请问您的二进制文件有一个独特的扩展?如果是这样,请参见本手册的Suffixes章:

.bin.o: 
     bin2o -o [email protected] $< 

然后您在您的foo_SOURCES变量列表foo.bin

如果你没有一个鲜明的扩展,尝试这样的事情:

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

foobin$(OBJEXT): foobin 
     bin2o -o [email protected] $< 
+1

得到成功的治疗。谢谢。 对不起,我不能提供答案,因为我没有足够的代表:( – Satpal

+2

)在第二种情况下,您可能希望将'foobin $(OBJEXT)'添加到'CLEANFILES',所以它被'make clean'删除。 –