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

发布于 2024-11-16 22:14:42 字数 413 浏览 3 评论 0原文

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

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

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

We have a project (c++) and it needs to include a binary file into shared library. This is done on windows by referencing the binary file from a resource file. On Linux it can be achieved by using objcopy as shown here

The question is how can this be automated this using autoconf/automake? There exists Makefile.am and configure.ac files. Is this going to be a manual task?

(Maybe this question needs to be on the unix stack exchange site?)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薄荷→糖丶微凉 2024-11-23 22:14:42

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

.bin.o:
        bin2o -o $@ 
lt;

然后列出 < code>foo.bin 在您的 foo_SOURCES 变量中。

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

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

foobin$(OBJEXT): foobin
        bin2o -o $@ 
lt;

Does your binary file have a distinctive extension? If so, refer to the Suffixes chapter of the manual:

.bin.o:
        bin2o -o $@ 
lt;

And you then list foo.bin in your foo_SOURCES variable.

If you don't have a distinctive extension, try something like this:

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

foobin$(OBJEXT): foobin
        bin2o -o $@ 
lt;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文