Использовать модуль CPAN BerkeleyDB в Windows 7 (64 бит)

Я безуспешно пытаюсь установить CPAN-модуль BerkeleyDB на ПК с Windows 7 (x86_64) (мне нужен BerkeleyDB::Hash). У меня установлена ​​64-битная версия ActivePerl и Oracle Berkeley DB 11gR2 5.3.15. Сначала я попытался установить с помощью команды:

*cpan install BerkeleyDB*

Это вернулось с ошибкой:

*It looks like the installation of dmake and MinGW has failed.  You will not be
able to run Makefile commands or compile C extension code.  Please check your
internet connection and your proxy settings!*

Поэтому я установил Microsoft Windows SDK для Windows 7 и.NET Framework 4.

Затем я установил cpanm

*cpan App::cpanminus*

И когда я попытался бежать:

*cpanm BerkeleyDB*

Я получил ошибку:

*Note (probably harmless): No library found for -llibdb
Note (probably harmless): No library found for bufferoverflowU.lib*

Поэтому я отредактировал файл config.in и изменил lib и включил пути к:

*INCLUDE    =  C:\PROGRA~2\Oracle\BERKEL~1.15\include
LIB =  C:\PROGRA~2\Oracle\BERKEL~1.15\lib*

Теперь, когда я запустил perl makefile.pl, предупреждение о -llibdb ушло.

Когда я попытался бежать:

 *nmake* 

Я получил ошибки:

  *Creating library blib\arch\auto\BerkeleyDB\BerkeleyDB.lib and object blib\arc
h\auto\BerkeleyDB\BerkeleyDB.exp
BerkeleyDB.obj : error LNK2001: unresolved external symbol __heap_exist
BerkeleyDB.obj : error LNK2001: unresolved external symbol db_version
BerkeleyDB.obj : error LNK2001: unresolved external symbol db_strerror
BerkeleyDB.obj : error LNK2001: unresolved external symbol db_env_create
BerkeleyDB.obj : error LNK2001: unresolved external symbol db_create
BerkeleyDB.obj : error LNK2001: unresolved external symbol db_sequence_create
blib\arch\auto\BerkeleyDB\BerkeleyDB.dll : fatal error LNK1120: 6 unresolved ext
ernals
NMAKE : fatal error U1077: '"C:\Program Files (x86)\Microsoft Visual Studio 10.0
\VC\Bin\amd64\link.EXE"' : return code '0x460'
Stop.*

Я почти потерял всякую надежду когда-либо успешно построить этот модуль на моем ПК. Кому-нибудь повезло с этим?

Большое спасибо,

SN

1 ответ

Все последующие претензии не проверены / не проверены. Компетентный совет доступен от #win32 в MagNET < irc://irc.perl.org/win32> ( Веб-чат).

libdb требует исправления для 64-битной версии. Установка новой цепочки инструментов компилятора перед установкой зависимой библиотеки и ее заголовков усугубила проблему. Если у вас по-прежнему возникают проблемы со связыванием после установки исправления, удалите средства MS и повторите попытку с MinGW.

Другие вопросы по тегам