Назад | Перейти на главную страницу

util_pcre.c: 104: неопределенная ссылка на pcre_free при компиляции Apache HTTPD 2.4.17. collect2: ошибка: ld вернул 1 статус выхода

На новом EC2 я столкнулся с одной проблемой при компиляции httpd. Похоже, что код Apache не может найти функции / определения функций из библиотек.

Шаги, которые я предпринял с новым RHEL для установки httpd.

    sudo yum install gcc
    extracted apr's and apr's source in respective directories under srclib of httpd source code
    compiled latest pcre
    sudo yum install pcre-devel (because of error cannot find pcre.h while ./configure)
    ./configure --with-included-apr --prefix='/server/httpd/httpd-2.4.17' --with-pcre='/usr/local/bin/pcre-config' --with-ssl='/usr/bin/openssl'
    make

на этапе make install все идет нормально некоторое время, а затем появляется следующий массив ошибок. Думаю, все ошибки связаны.

    /server/httpd/httpd-2.4.17-source/server/util_pcre.c:104: undefined reference to `pcre_free'
    server/.libs/libmain.a(util_pcre.o): In function `ap_regcomp':
    /server/httpd/httpd-2.4.17-source/server/util_pcre.c:138: undefined reference to `pcre_compile2'
    /server/httpd/httpd-2.4.17-source/server/util_pcre.c:151: undefined reference to `pcre_fullinfo'
    server/.libs/libmain.a(util_pcre.o): In function `ap_regexec_len':
    /server/httpd/httpd-2.4.17-source/server/util_pcre.c:207: undefined reference to `pcre_exec'
    server/.libs/libmain.a(util_pcre.o): In function `ap_regname':
    /server/httpd/httpd-2.4.17-source/server/util_pcre.c:269: undefined reference to `pcre_fullinfo'
    /server/httpd/httpd-2.4.17-source/server/util_pcre.c:271: undefined reference to `pcre_fullinfo'
    /server/httpd/httpd-2.4.17-source/server/util_pcre.c:273: undefined reference to `pcre_fullinfo'

После некоторого поиска в Google я обнаружил, что могу ли я исправить способ вызова gcc в Makefile, это могло бы решить проблему, но я даже не могу найти термин «gcc» в Makefile.

Пожалуйста помоги.

ОБНОВИТЬ

Я могу легко воспроизвести это на своей локальной машине Ubuntu, выполнив те же действия. для установки Ubuntu libpcre3-dev вместо того pcre-devel

Потратив более 20 часов на эту проблему, я нашел решение.

Последняя версия pcre pcre2-10.10 Когда я переустановил (скомпилировал из исходников) pcre с более старой версией pcre-8.38, компиляция прошла без ошибок.

    make clean (because wrong tries with ./configure messes up the Makefile)
    ./configure <options>
    make 
    make install