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

时间:2017-04-25 22:59:57

标签: mysql macos perl homebrew dbd

强文

通过自制程序更新perl后,我破坏了我的dbd :: mysql安装 通过cpanm安装结果

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

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

强文

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

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

有谁知道如何解决? 我试过删除mysql-connector-c并通过安装mysql 自制的。然后投诉是无法链接/包含C库 'ssl','crypto',流产。我确实安装了openssl。

perl:这是perl 5,版本24,颠覆1(v5.24.1) 达尔文线程多2level

thnx的帮助

4 个答案:

答案 0 :(得分:5)

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

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

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

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

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

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

  • 验证我的问题确实是由于缺少链接标志造成的。
  • 运行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连接的库,该库将稍后this answer

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

答案 1 :(得分:1)

  1. mysql_config显示which mysql_config路径

      

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

  2. 通过which openssl显示openssl lib路径。注意:如果它是/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

    insert path of openssl lib 4.输入cpan install DBD::mysql,成功。

答案 2 :(得分:0)

我得到了同样的错误,当我试图解决这个问题时,我将-I / usr / local / mysql / include添加到perl makefile.pl命令中。这不起作用,但像山羊我再次尝试,然后它想出了一个Xcode协议表格,我必须阅读并遵守。更长的故事我将一个旧的macbook pro升级为el capitan,然后上周必须安装Xcode 6.3。我忘记了新的Xcode。无论如何,最终结果是一旦我同意Xcode使用

就成功安装

答案 3 :(得分:0)

再次偶然发现了这个问题,在没有任何答案起作用之后,这个问题就帮了大忙:

PATH="$(brew --prefix mysql-client)/bin:$PATH"
export LIBRARY_PATH=$(brew --prefix openssl)/lib:$LIBRARY_PATH
cpanm DBD::mysql

信用转到https://blog.mitsuto.com/macos-mojave-perl-dbd-mysql

相关问题