编译GCC Ubuntu时出错:未定义对的引用

编译GCC Ubuntu时出错:未定义对的引用,c,ubuntu,gcc,makefile,autoconf,C,Ubuntu,Gcc,Makefile,Autoconf,我正在尝试运行一个C项目“https://github.com/karimaechihabi/lernaean-hydra/tree/91b480fb633ab4730a2cf1f5573d20d55b39b71e/hydra1/code/ucr-suite,按照与read me中相同的步骤自动生成配置和生成文件: >./autogen.sh \ >./configure \ >make 但是当我运行make file时,我得到了一个未定义引用的错误: >usr/bin

我正在尝试运行一个C项目“https://github.com/karimaechihabi/lernaean-hydra/tree/91b480fb633ab4730a2cf1f5573d20d55b39b71e/hydra1/code/ucr-suite,按照与read me中相同的步骤自动生成配置和生成文件:

>./autogen.sh \
>./configure \
>make
但是当我运行make file时,我得到了一个未定义引用的错误:

>usr/bin/x86_64-linux-gnu-ld: src/bin_serial-serial_scan.o: in function `main': 
/home/zeraph/lernaean-hydra/hydra1/code/ucr-suite/src/serial_scan.c:143: undefined reference to `init_serial_stats'\
/usr/bin/x86_64-linux-gnu-ld: /home/zeraph/lernaean-hydra/hydra1/code/ucr-suite/src/serial_scan.c:147: undefined reference to `serial_scan'\
collect2: error: ld returned 1 exit status\
make[1]: *** [Makefile:486: bin/serial] Error 1\
make[1]: Leaving directory '/home/zeraph/lernaean-hydra/hydra1/code/ucr-suite'\
make: *** [Makefile:335: all] Error 2     

有什么帮助吗?

Ps:在运行Configuration命令生成makefile时,我还收到以下警告:

>/usr/share/automake-1.16/am/library.am: warning: 'lib/libserial.a': linking libraries using a non-POSIX \
/usr/share/automake-1.16/am/library.am: archiver requires 'AM_PROG_AR' in 'configure.ac'

问题在于make依赖关系(试图在lib/libserial.a构建之前构建bin/serial);
解决方案:首先制作lib/libserial.a,然后是make-to-build-bin/serial。

也许项目有bug?您需要进一步深入研究代码并找出答案。如果无法使其正常工作,请在适当的情况下打开一个问题。在生成lib/libserial.a之前尝试生成bin/serial,这似乎与生成依赖项有关。您可以先执行
make lib/libserial.a
,然后再执行
make
来构建bin/serial,但由于定义了多个全局变量,因此会产生错误。感谢@ianabbott坚持解决问题并找到解决方案,这是值得一试的。(您可能也应该在github上打开一张票证)