【问题标题】:Multiple programs share a source file when autotools generating makefiles自动工具生成 makefile 时,多个程序共享一个源文件
【发布时间】:2015-10-30 17:20:14
【问题描述】:

这个问题主要涉及 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)

谢谢。

【问题讨论】:

  • 您的Makefile.amconfigure.ac 文件的相关位目前是什么样的?

标签: c makefile autotools


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2017-04-11
    • 2018-11-14
    相关资源
    最近更新 更多