【发布时间】: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,请帮助我不要成为最后一次!
【问题讨论】: