gpt4 book ai didi

c - 如何在 Autotools 中打包可执行文件及其依赖的库

转载 作者:太空宇宙 更新时间:2023-11-04 02:59:07 25 4
gpt4 key购买 nike

我是 autotools 的新手,我一直在寻找有关如何使用 autotools 打包库和可执行文件的示例。可执行文件依赖于库,因此必须先构建库。

到目前为止,我已经将库自行打包,然后我可以编译可执行文件并在安装后链接到库。这是该过程的 Makefile.am:

lib_LTLIBRARIES = libfoo.1.0.0.la
libfoo_1_0_0_la_SOURCES = libfoo.c
library_includedir=$(includedir)
library_include_HEADERS = libfoo.h

然后在 configure.ac 文件中,我在适当的位置添加了 LT_INIT 行。一切都很好地构建并且工作。我有一个文件 foo.c,它使用我可以用 gcc foo.c -o foo -lfoo 编译的库,但是我想扩展 autotools 包以包含 foo 可执行文件,我不知道该怎么做。我已将 Makefile.am 修改为如下所示:

bin_PROGRAMS=foo
foo_SOURCES=foo.c
foo_DEPENDENCIES=libfoo.1.0.0.la
lib_LTLIBRARIES = libfoo.1.0.0.la
libfoo_1_0_0_la_SOURCES = libfoo.c
library_includedir=$(includedir)
library_include_HEADERS = libfoo.h

我的configure.ac 文件没有改变。在我开始之前一切都运行良好,此时似乎首先编译了 foo.c 并且显然会抛出很多错误,因为 libfoo 中的函数不可用。我已经搜索过这样的示例,但到目前为止还没有任何运气。任何帮助将不胜感激。

最佳答案

这是正确的做法。

lib_LTLIBRARIES = libmoovcaps.la
libmovcaps_la_SOURCES = libmoovcaps.c
include_HEADERS = libmoovcaps.h
bin_PROGRAMS = moovcaps
moovcaps_SOURCES = moovcaps.c
moovcaps_LDADD = libmoovcaps.la

P.S.:为什么你的 libmoovcaps.la 中有数字?您可以通过 libmoovcaps_LDFLAGS 传递 -version-info 标志。

关于c - 如何在 Autotools 中打包可执行文件及其依赖的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14141972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com