当autotools生成makefile时,多个程序共享源文件

时间:2015-10-30 17:20:14

标签: c makefile autotools

这个问题主要涉及Unix / Linux风格的C开发。我使用autotools生成Makefile

有两个程序共享一个名为utils.c的源文件。

我的源代码树的结构如下:

app/
    src/
        server/
            server.c
            ...
        client/
            client.c
            ...
    include/

问题是我应该在何处放置共享源文件,以及如何编写Makefile.amconfigure.ac以使其正常工作。

当前configure.ac仅指定AC_CONFIG_FILES([Makefile src/Makefile])

目前的src/Makefile.am是这样的:

bin_PROGRAMS = server client
server_SOURCES = server/server.c
client_SOURCES = client/client.c
server_LDADD = $(DONT_KNOW_WHAT_TO_WRITE)
client_LDADD = $(DONT_KNOW_WHAT_TO_WRITE)

感谢。

1 个答案:

答案 0 :(得分:0)

如果它只是一个相对较小的源文件,您可以将其添加到相应的_SOURCES行。

如果共享代码包含多个文件,则可以创建静态库。 https://www.gnu.org/software/automake/manual/html_node/A-Library.html