在Windows 7(64位)上使用CPAN BerkeleyDB模块

时间:2012-04-05 14:05:57

标签: perl windows-7 x86-64 berkeley-db

我一直试图在我的Windows 7(x86_64)PC上安装BerkeleyDB CPAN模块而没有任何运气(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!*

所以我安装了适用于Windows 7和.NET Framework 4的Microsoft Windows SDK。

然后我安装了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 个答案:

答案 0 :(得分:0)

以下所有声明未经测试/未经验证。可以从Magnet< irc://irc.perl.org/win32上的#win32获得主管建议> (Web chat)。

libdb需要patching for 64-bit。在安装依赖库及其标头之前安装一个全新的编译器工具链会使问题变得更糟。如果在应用修补程序后仍然存在链接问题,请卸载MS工具并再次使用MinGW。