0

我在win8环境下安装DBD-mysql,但是报错如下。

我使用 ActivePerl 5.10、mysql 5.5。谁能帮我?

事实上,我不想从源代码安装。但是要找到一个 ppm 包并不容易。

如果不添加某些系统路径,则很容易处理。但是这个错误显示需要一些windows库,然后我真的不知道如何设置以及在哪里设置,因为这意味着我应该更改DBD-mysql的源代码?但是每次我使用'perl -MCPAN -e "install DBD::mysql"'命令安装时,它都会下载一个新的DBD-mysql包,所以即使我在本地修改了代码,它也没有用。

   Creating library blib\arch\auto\DBD\mysql\mysql.lib and object blib\arch\auto
\DBD\mysql\mysql.exp
mysqlclient.lib(handshake_client.obj) : error LNK2019: unresolved external symbo
l __imp__InitializeSecurityContextW@48 referenced in function "public: virtual c
lass Blob __thiscall Handshake_client::process_data(class Blob const &)" (?proce
ss_data@Handshake_client@@UAE?AVBlob@@ABV2@@Z)
mysqlclient.lib(handshake.obj) : error LNK2019: unresolved external symbol _Comp
leteAuthToken@8 referenced in function "protected: bool __thiscall Handshake::pr
ocess_result(int)" (?process_result@Handshake@@IAE_NH@Z)
mysqlclient.lib(handshake.obj) : error LNK2019: unresolved external symbol _Free
ContextBuffer@4 referenced in function "public: void __thiscall Security_buffer:
:free(void)" (?free@Security_buffer@@QAEXXZ)
mysqlclient.lib(handshake.obj) : error LNK2019: unresolved external symbol _Acqu
ireCredentialsHandleA@36 referenced in function "public: __thiscall Handshake::H
andshake(char const *,enum Handshake::side_t)" (??0Handshake@@QAE@PBDW4side_t@0@
@Z)
mysqlclient.lib(handshake.obj) : error LNK2019: unresolved external symbol __imp
__DeleteSecurityContext@4 referenced in function "public: virtual __thiscall Han
dshake::~Handshake(void)" (??1Handshake@@UAE@XZ)
mysqlclient.lib(handshake.obj) : error LNK2019: unresolved external symbol __imp
__FreeCredentialsHandle@4 referenced in function "public: virtual __thiscall Han
dshake::~Handshake(void)" (??1Handshake@@UAE@XZ)
mysqlclient.lib(common.obj) : error LNK2019: unresolved external symbol _GetUser
NameExW@12 referenced in function "public: __thiscall UPN::UPN(void)" (??0UPN@@Q
AE@XZ)
blib\arch\auto\DBD\mysql\mysql.dll : fatal error LNK1120: 7 unresolved externals

NMAKE : fatal error U1077: 'C:\Perl\bin\perl.exe' : return code '0x1'
Stop.
  CAPTTOFU/DBD-mysql-4.028.tar.gz
  nmake -- NOT OK
4

1 回答 1

0

最后,我解决了。环境首先要注意:Win8.1 + ActivePerl 5.16 + Mysql 5.5。

1)打开windows命令行,运行:

set path=%path%;D:\Program Files (x86)\MySQL\MySQL Server 5.5\bin

2) 配置mysql数据库,添加一个UserName='ODBC'的新用户,密码设置为NULL。

3) 光盘进入:

D:\Program Files (x86)\MySQL\MySQL Server 5.5\lib

并创建一个子目录为“opt”;

4)安装草莓perl,将libmysql.a和libmysql_.dll复制到

D:\Program Files (x86)\MySQL\MySQL Server 5.5\lib\opt;

5)卸载草莓;

6) 设置路径=%path%;D:\Program Files (x86)\MySQL\MySQL Server 5.5\lib\opt

7) 在同一命令行控制台中运行命令:

perl -MCPAN -e "install DBD::mysql"

现在一切正常。

于 2014-11-08T04:21:23.183 回答