ld:在 macOS Big Sur 11.4 Apple M1 上捆绑安装 mysql2 gem Ruby 时找不到 -lzstd 的库

mysqlApplemacOSRuby

1个回答

写回答

啊刘啊!

2025-06-22 23:40

+ 关注

macOS
macOS

macOS Big Sur 11.4 Apple M1上进行Ruby开发时,我们经常会使用gem来管理和安装各种依赖包。其中一个常用的gem是MySQL2,它用于连接和操作MySQL数据库。然而,最近在安装MySQL2 gem时,我遇到了一个问题:找不到库-lzstd。在本文中,我将分享这个问题的解决方法,并提供一些案例代码来帮助大家理解。

问题描述:

当我在终端中运行命令gem install MySQL2时,安装过程中出现了以下错误信息:

shell

ld: library not found for -lzstd

clang: error: linker command fAIled with exit code 1 (use -v to see invocation)

make: *** [MySQL2.bundle] Error 1

make fAIled, exit code 2

这个错误提示表明在链接过程中找不到-lzstd库。那么,如何解决这个问题呢?

解决方法:

要解决这个问题,我们需要手动安装lzstd库,并将其路径添加到链接器的搜索路径中。下面是具体的步骤:

1. 打开终端,并使用Homebrew安装lzstd库。如果你尚未安装Homebrew,请先安装Homebrew,然后执行以下命令:

shell

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装完成后,运行以下命令来安装lzstd库:

shell

brew install lzstd

2. 安装完成后,我们需要将lzstd库的路径添加到链接器的搜索路径中。打开终端,并执行以下命令:

shell

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/lzstd/lib

3. 现在,我们可以重新运行gem install MySQL2命令来安装MySQL2 gem了。这次应该能够成功安装。

shell

gem install MySQL2

案例代码:

下面是一个简单的Ruby程序示例,演示了如何使用MySQL2 gem连接和操作MySQL数据库:

Ruby

require 'MySQL2'

# 创建数据库连接

client = MySQL2::Client.new(

host: 'localhost',

username: 'root',

password: 'password',

Database: 'test'

)

# 执行SQL查询

results = client.query('SELECT * FROM users')

# 输出查询结果

results.each do |row|

puts "#{row['id']} - #{row['name']}"

end

# 关闭数据库连接

client.close

解决方法

在解决这个问题时,我们需要手动安装lzstd库,并将其路径添加到链接器的搜索路径中。这样,就可以成功安装MySQL2 gem并进行MySQL数据库的连接和操作了。

macOS Big Sur 11.4 Apple M1上安装MySQL2 gem时遇到找不到-lzstd库的问题,可能是由于缺少依赖库或链接器搜索路径不正确所致。通过手动安装lzstd库并添加路径到链接器中,可以成功解决这个问题。希望本文的解决方法和案例代码能够帮助到大家。如果你还有其他类似的问题,也可以尝试类似的解决方法。祝大家在Ruby开发中取得更多的成功!

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号