Как сказал @hacker, вы должны либо установить PCRE на целевой машине, либо использовать статическую библиотеку (libpcre.a
вместо libpcre.so
) на машине для разработки. Это также может означать, что вам нужно собрать PCRE со статической библиотекой, и вам нужно будет использовать правильные параметры времени компиляции для загрузки статической библиотеки. Один из относительно простых способов сделать это - указать /usr/lib/libpcre.a
в командной строке компилятора. В идеале, вы также должны избегать включения -lpcre
в командную строку - конечно, вы бы хотели, чтобы статическая библиотека появлялась раньше разделяемой библиотеки.
Возможно, ваша копия не выполнена из-за проблем с символическими ссылками. Вы обычно ссылаетесь на файл, такой как:
/usr/lib/libpcre.so
но это символическая ссылка на версионную библиотеку, такую как:
/usr/lib/libpcre.so.0
Или это может работать наоборот. Если вы использовали tar
для копирования, возможно, вы скопировали символическую ссылку.
В идеале, вы устанавливаете PCRE в системный каталог, но для этого требуются права суперпользователя. Вы также должны быть осторожны, чтобы не перезаписывать более новую версию PCRE более старой версией. Кроме того, вы не должны заставлять пользователей задавать переменную среды LD_LIBRARY_PATH
(или ее эквиваленты) или заставлять их использовать программу настройки (ld.so.conf
?).