【问题标题】:Problem with automake and linking自动制作和链接问题
【发布时间】:2011-01-26 10:52:32
【问题描述】:

所以,在花了几个小时手动配置自动工具之后,我终于设法为我的项目创建了一个 makefile。唯一的问题?它给我的链接器带来了问题。

让我更好地解释一下:我有一个项目,它分为几个子程序,所有子程序都将链接到主程序 main.c。我的问题是,虽然我可以使用 gcc 正确编译所有内容,但 make 却给了我可怕的 collect2: ld returned 1 exit status 错误,并将对 main 的未定义引用命名为原因。现在,我们都知道这是一个链接错误,作为证明,我可以编译所有文件而不链接它们,在 Makefile.am 的 CFLAGS 中添加 -c。但我们已经知道了,我猜。

我的问题是:我应该将什么添加到 Makefile.am(我猜是我的 src 文件夹中的那个?)文件,以便让它将所有文件相互链接而不是单独链接,以便链接器将在 main.o 中找到入口点?基本上相当于运行“gcc program1.c program2.c main.c”。我知道 automake 会这样做,因为它会逐步构建文件,一次一个,我知道这是一个愚蠢的问题,但无论如何它都让我发疯。这是我第一次使用 autotools,请帮助我不要成为最后一次!

【问题讨论】:

    标签: c gnu autotools automake


    【解决方案1】:

    如果foo 是你的程序名,而你没有做任何花哨的事情,

    bin_PROGRAMS = foo
    foo_SOURCES = program1.c program2.c main.c
    foo_LDADD = # any other libraries go here as -l arguments
    

    应该是足够的Makefile.am

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 2015-08-06
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多