安装 chkTex 时出错

安装 chkTex 时出错

我正在尝试在 Ubuntu 16.04 版本上安装 ChkTex。为此,我下载了手册和软件。我目前正在关注安装手册。但是,当我尝试使用该命令时make,它给出了以下错误:

gcc -lpcreposix -lpcre -o chktex ChkTeX.o FindErrs.o OpSys.o Resource.o Utility.o -ltermcap 
FindErrs.o: In function `CheckSilentRegex':
/home/mala/Downloads/chktex-1.7.6/FindErrs.c:1256: undefined reference to `pcreposix_regcomp'
/home/mala/Downloads/chktex-1.7.6/FindErrs.c:1277: undefined reference to `pcreposix_regexec'
/home/mala/Downloads/chktex-1.7.6/FindErrs.c:1288: undefined reference to `pcreposix_regerror'
/home/mala/Downloads/chktex-1.7.6/FindErrs.c:1261: undefined reference to `pcreposix_regerror'
FindErrs.o: In function `CheckRest':
/home/mala/Downloads/chktex-1.7.6/FindErrs.c:920: undefined reference to `pcreposix_regexec'
/home/mala/Downloads/chktex-1.7.6/FindErrs.c:931: undefined reference to `pcreposix_regerror'
/home/mala/Downloads/chktex-1.7.6/FindErrs.c:878: undefined reference to `pcreposix_regcomp'
/home/mala/Downloads/chktex-1.7.6/FindErrs.c:885: undefined reference to `pcreposix_regerror'
collect2: error: ld returned 1 exit status
Makefile:160: recipe for target 'chktex' failed
make: *** [chktex] Error 1

错误的原因是什么?我该如何消除它?

答案1

首先,请注意chktex(1.7.4-1ubuntu2)可从 Universe 存储库获取适用于 Ubuntu 16.04 的版本。


该错误似乎是因为相关库在命令行中放置不正确gcc- 请参阅为什么库的链接顺序有时会导致 GCC 出现错误?

深入挖掘,可以追溯到显然被添加到LDFLAGS而不是LIBS

LIBS=-ltermcap -lpcreposix -lpcre
LDFLAGS=-lpcreposix -lpcre

所以食谱

chktex: $(OBJS)
        $(CC) $(LDFLAGS) -o chktex $(OBJS) $(LIBS)

扩展为

gcc -lpcreposix -lpcre -o chktex ChkTeX.o FindErrs.o OpSys.o Resource.o Utility.o -ltermcap 

而不是所需的

gcc -o chktex ChkTeX.o FindErrs.o OpSys.o Resource.o Utility.o -ltermcap -lpcreposix -lpcre 

您可以通过手动编辑 Makefile 来解决此问题,将行更改为

LIBS=-ltermcap -lpcreposix -lpcre
LDFLAGS= 

相关内容