Я пытаюсь установить ChkTex на Ubuntu версии 16.04. Для этого я скачал руководство и программное обеспечение. В настоящее время я следую руководству по установке. Но, когда я пытаюсь использовать команду 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
В чем причина ошибки и как ее устранить?
Во-первых, обратите внимание на то, что chktex (1.7.4-1ubuntu2) доступно для 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
Можно работать вокруг этого путем ручного редактирования Make-файла, изменения строк на
LIBS=-ltermcap -lpcreposix -lpcre
LDFLAGS=