Ошибка OSX Vanitygen: pattern.c:32:10: фатальная ошибка: файл pcre.h не найден

Я получаю сообщение об ошибке ниже, когда пытаюсь сделать vanitygen в соответствии с инструкциями, указанными в «установить».

Ошибка make (короткая версия)

27 warnings generated.
cc -ggdb -O3 -Wall   -c -o pattern.o pattern.c
pattern.c:32:10: fatal error: 'pcre.h' file not found
#include <pcre.h>
         ^
1 error generated.

Полный вывод make

my-MacBook-Pro:git-vanitygen admin$ make
cc -ggdb -O3 -Wall   -c -o vanitygen.o vanitygen.c
vanitygen.c:76:11: warning: 'EC_KEY_get0_group' is deprecated
      [-Wdeprecated-declarations]
        pgroup = EC_KEY_get0_group(pkey);
                 ^
vanitygen.c:77:9: warning: 'EC_GROUP_get0_generator' is deprecated
      [-Wdeprecated-declarations]
        pgen = EC_GROUP_get0_generator(pgroup);
               ^
vanitygen.c:80:13: warning: 'EC_POINT_new' is deprecated
      [-Wdeprecated-declarations]
                ppnt[i] = EC_POINT_new(pgroup);
                          ^
vanitygen.c:86:14: warning: 'EC_POINT_new' is deprecated
      [-Wdeprecated-declarations]
        pbatchinc = EC_POINT_new(pgroup);
                    ^
vanitygen.c:92:2: warning: 'BN_set_word' is deprecated
      [-Wdeprecated-declarations]
        BN_set_word(&vxcp->vxc_bntmp, ptarraysize);
        ^
vanitygen.c:93:2: warning: 'EC_POINT_mul' is deprecated
      [-Wdeprecated-declarations]
        EC_POINT_mul(pgroup, pbatchinc, &vxcp->vxc_bntmp, NULL, NULL,
        ^
vanitygen.c:95:2: warning: 'EC_POINT_make_affine' is deprecated
      [-Wdeprecated-declarations]
        EC_POINT_make_affine(pgroup, pbatchinc, vxcp->vxc_bnctx);
        ^
vanitygen.c:124:4: warning: 'EC_KEY_generate_key' is deprecated
      [-Wdeprecated-declarations]
                        EC_KEY_generate_key(pkey);
                        ^
vanitygen.c:128:4: warning: 'EC_GROUP_get_order' is deprecated
      [-Wdeprecated-declarations]
                        EC_GROUP_get_order(pgroup, &vxcp->vxc_bntmp,
                        ^
vanitygen.c:130:4: warning: 'BN_sub' is deprecated [-Wdeprecated-declarations]
                        BN_sub(&vxcp->vxc_bntmp2,
                        ^
vanitygen.c:132:11: warning: 'EC_KEY_get0_private_key' is deprecated
      [-Wdeprecated-declarations]
                               EC_KEY_get0_private_key(pkey));
                               ^
vanitygen.c:133:15: warning: 'BN_get_word' is deprecated
      [-Wdeprecated-declarations]
                        rekey_at = BN_get_word(&vxcp->vxc_bntmp2);
                                   ^
vanitygen.c:138:4: warning: 'EC_POINT_copy' is deprecated
      [-Wdeprecated-declarations]
                        EC_POINT_copy(ppnt[0], EC_KEY_get0_public_key(pkey));
                        ^
vanitygen.c:138:27: warning: 'EC_KEY_get0_public_key' is deprecated
      [-Wdeprecated-declarations]
                        EC_POINT_copy(ppnt[0], EC_KEY_get0_public_key(pkey));
                                               ^
vanitygen.c:145:5: warning: 'EC_POINT_add' is deprecated
      [-Wdeprecated-declarations]
                                EC_POINT_add(pgroup,
                                ^
vanitygen.c:154:5: warning: 'EC_POINT_add' is deprecated
      [-Wdeprecated-declarations]
                                EC_POINT_add(pgroup,
                                ^
vanitygen.c:173:5: warning: 'EC_POINT_add' is deprecated
      [-Wdeprecated-declarations]
                                EC_POINT_add(pgroup,
                                ^
vanitygen.c:192:3: warning: 'EC_POINTs_make_affine' is deprecated
      [-Wdeprecated-declarations]
                EC_POINTs_make_affine(pgroup, nbatch, ppnt, vxcp->vxc_bnctx);
                ^
vanitygen.c:196:10: warning: 'EC_POINT_point2oct' is deprecated
      [-Wdeprecated-declarations]
                        len = EC_POINT_point2oct(pgroup, ppnt[i],
                              ^
vanitygen.c:203:4: warning: 'SHA256' is deprecated [-Wdeprecated-declarations]
                        SHA256(hash_buf, hash_len, hash1);
                        ^
vanitygen.c:204:4: warning: 'RIPEMD160' is deprecated
      [-Wdeprecated-declarations]
                        RIPEMD160(hash1, sizeof(hash1), &vxcp->vxc_binres[1]);
                        ^
vanitygen.c:236:4: warning: 'EC_POINT_free' is deprecated
      [-Wdeprecated-declarations]
                        EC_POINT_free(ppnt[i]);
                        ^
vanitygen.c:238:3: warning: 'EC_POINT_free' is deprecated
      [-Wdeprecated-declarations]
                EC_POINT_free(pbatchinc);
                ^
vanitygen.c:419:18: warning: 'EC_POINT_hex2point' is deprecated
      [-Wdeprecated-declarations]
                        pubkey_base = EC_POINT_hex2point(
                                      ^
vanitygen.c:420:5: warning: 'EC_KEY_get0_group' is deprecated
      [-Wdeprecated-declarations]
                                EC_KEY_get0_group(pkey),
                                ^
vanitygen.c:422:4: warning: 'EC_KEY_free' is deprecated
      [-Wdeprecated-declarations]
                        EC_KEY_free(pkey);
                        ^
vanitygen.c:528:9: warning: 'RAND_load_file' is deprecated
      [-Wdeprecated-declarations]
                opt = RAND_load_file(seedfile, opt);
                      ^
27 warnings generated.
cc -ggdb -O3 -Wall   -c -o pattern.o pattern.c
pattern.c:32:10: fatal error: 'pcre.h' file not found
#include <pcre.h>
         ^
1 error generated.
make: *** [pattern.o] Error 1

ОБНОВИТЬ

Я подозреваю, что PCRE, указанный в списке, также имеет порт OSX, указанный здесь , и когда я компилирую в соответствии с инструкциями, я получаю эту ошибку:

make  install-am
 ./install-sh -c -d '/usr/local/lib'
 /bin/sh ./libtool   --mode=install /usr/bin/install -c   libpcre.la libpcreposix.la libpcrecpp.la '/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libpcre.1.dylib /usr/local/lib/libpcre.1.dylib
install: /usr/local/lib/libpcre.1.dylib: Permission denied
make[2]: *** [install-libLTLIBRARIES] Error 71
make[1]: *** [install-am] Error 2
make: *** [install] Error 2
Для тех, кто голосует не по теме, этот вопрос не кажется существенно отличным от многих других вопросов с тегом «vanitygen». Если все вопросы такого типа будут считаться не относящимися к теме, это рассмотрение, вероятно, следует начать с метапоста. Голосование за то, чтобы пока оставить открытым.
Вам нужно ввести «sudo make install» вместо «make install», чтобы правильно установить PCRE.

Ответы (2)

Я бы рекомендовал использовать Homebrew или MacPorts для управления этой зависимостью.

Пакет Homebrew — это просто pcreили pcre++.

brew install pcre pcre++

Пакеты MacPorts — это pcreи pcrexx.

sudo port install pcre pcrexx
Соответствующие пакеты macports pcreиpcrexx
Следует отметить, что если вы установили новую версию XCode, вам нужно будет установить соответствующие инструменты командной строки /usr/local/includes, чтобы быть в пути поиска вашего компилятора. Именно сюда Homebrew и MacPorts поместили бы pcre.hфайл.
pcre++не требуется.

на всякий случай, если кто-то все еще ищет ответ: в файле pattern.c просто введите полный путь к pcre.h (используйте locate pcre.h, чтобы найти путь для него; если у вас нет файла, просто сначала установите пакет pcre) . После этого он должен нормально скомпилироваться.