Используйте модуль CPAN BerkeleyDB в Windows 7 (64-разрядная версия)

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


person user1315426    schedule 05.04.2012    source источник


Ответы (1)


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

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

person daxim    schedule 07.04.2012
comment
Ссылка «исправление для 64-битной версии» не работает! Не могли бы вы исправить это, потому что я ищу решение этой проблемы. - person smartmeta; 03.11.2014