Я безуспешно пытался установить модуль BerkeleyDB CPAN на свой ПК с 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 на:
*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