在OSX 10.11上安装DBD :: MySQL时出错-无法链接/包含C库'',正在中止

dio*_*ion 5 mysql macos perl homebrew dbd

强文本

通过自制软件更新perl之后,我通过cpanm安装了dbd :: mysql安装程序,结果是

记录错误:我将使用以下设置进行编译和测试:

cflags        (mysql_config) = -I/usr/local/Cellar/mysql-connector-
c/6.1.9/include
embedded      (guessed     ) =
ldflags       (guessed     ) =
libs          (mysql_config) = -L/usr/local/Cellar/mysql-connector-
c/6.1.9/lib -l
mysql_config  (guessed     ) = mysql_config
nocatchstderr (default     ) = 0
nofoundrows   (default     ) = 0
nossl         (default     ) = 0
testdb        (default     ) = test
testhost      (default     ) =
testpassword  (default     ) =
testport      (default     ) =
testsocket    (default     ) =
testuser      (guessed     ) = root
Run Code Online (Sandbox Code Playgroud)

强文本

要更改这些设置,请参见“ perl Makefile.PL --help”和“ perldoc DBD :: mysql :: INSTALL”。

正在检查库是否可用于编译...无法链接/包括C库”,正在中止。

有人知道如何解决吗?我试着删除mysql-connector-c,而是通过自制软件安装mysql。然后抱怨是无法链接/包括C库'ssl','crypto',中止。我确实安装了openssl。

perl:这是为darwin-thread-multi-2level构建的perl 5,版本24,版本1(v5.24.1)

thnx寻求帮助

Hom*_*qyy 14

  1. 显示mysql_config路径which mysql_config

    例如:/usr/local/opt/mysql@5.7/bin/mysql_config

  2. 显示 openssl lib 路径which openssl。注意:如果它是 中的符号/usr/local/bin/openssl,您可以键入ls -ld /usr/local/bin/openssl以显示真实路径

    例如:如果是/usr/local/openssl/bin/openssl,那么你可以插入-L/usr/local/openssl/lib/搜索cryptossl

  3. 编辑mysql_config文件并插入 openssl lib 的路径(第 114 行)

    例如: libs=$libs -L/usr/local/opt/openssl/lib

    插入openssl库的路径 4.类型cpan install DBD::mysql,成功。

  • 这对我有用,只需稍加调整即可。我在“brew info openssl”的输出中找到了 openssl lib 路径,而不是“which openssl”,因为 Homebrew 将其安装为仅桶。 (3认同)

小智 11

这是一个古老的问题,但是我在安装DBD :: mysql时遇到了这个问题,我看到其他人也仍然有这个问题。这是对我有用的复杂解决方案。

我从运行(MacOX Mojave 10.14.1)开始:

  • brew install mysql
  • cpanm install DBD::mysql
  • 这失败了。

这给了我错误消息“无法链接/包括C库'ssl','crypto',正在中止”。按照此线程和meta-cpan上的DBD :: mysql安装说明,发生此错误是因为DBD :: mysql软件包需要(?)“ mysql-connector-c”而不是“ mysql”。好的,我通过执行以下操作解决了该问题:

  • brew unlink mysql
  • brew install mysql-connector-c
  • cpanm install DBD::mysql
  • cpan安装仍然失败,但是出现新错误!

之所以“解决”该问题,是因为它给了我不同的错误消息。我现在收到消息:“无法链接/包括C库”,正在中止”。进展!现在我在这个答案上得到了错误。我通过以下方式解决了该错误:

  • 验证我的问题确实是由于缺少链接标志引起的。
  • mysql_config
  • 这将返回如下内容:--libs [L / usr / local / Cellar / mysql-connector-c / 6.1.11 / lib -l]
  • 请注意,末尾的“ -l”后面没有任何内容,这是不正确的。
  • 编辑 /usr/local/Cellar/mysql-connector-c/6.1.11/bin/mysql_config line #114
  • 更改libs="$libs -l"libs="$libs -lmysqlclient"
  • 验证它是否有效: mysql_config
  • 这应该返回如下内容:--libs [L / usr / local / Cellar / mysql-connector-c / 6.1.11 / lib -lmysqlclient]
  • 再做一次 cpanm install DBD::mysql
  • 这次可以了!!!
  • 请注意:我们并未安装用于SSL连接的库,这可能会在以后引起密码问题

这为我成功安装了DBD :: mysql。我确实认为我将不得不返回并添加更多的链接标志。


小智 0

我遇到了同样的错误,在尝试找出答案时,我将 -I/usr/local/mysql/include 添加到了 perl makefile.pl 命令中。这不起作用,但我像山羊一样再次尝试,然后它提出了一个 Xcode 协议表格,我必须阅读并遵守它。长话短说,我上周将一台旧的 MacBook Pro 升级到了 el Capitan,然后不得不安装 Xcode 6.3。我忘记了较新的 Xcode。不管怎样,一旦我同意使用 Xcode,最终的结果就是安装成功