关于cannot load such file -- sqlite3/sqlite3_native (LoadError)的错误

在尝试使用Ruby操作sqlite3数据库时遇到`cannot load such file -- sqlite3/sqlite3_native (LoadError)`的问题。通过重新安装带dk的ruby,指定头文件和DLL文件目录进行gem安装sqlite3,最终解决了这个问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天试着用ruby操作sqlite3数据库,用gem安装sqlite3数据库,是没有问题的。

D:\software\sqlite-amalgamation-3260000\sqlite-amalgamation-3260000>gem install sqlite3
Fetching: sqlite3-1.3.13-x64-mingw32.gem (100%)
Successfully installed sqlite3-1.3.13-x64-mingw32
Parsing documentation for sqlite3-1.3.13-x64-mingw32
Installing ri documentation for sqlite3-1.3.13-x64-mingw32
Done installing documentation for sqlite3 after 1 seconds
1 gem installed

然而在执行程序的时候,却发生了下面的错误。

D:\Ruby25-x64\bin\ruby.exe D:/exercise/Ruby/grep.rb
Traceback (most recent call last):
        7: from D:/exercise/Ruby/grep.rb:1:in `<main>'
        6: from D:/Ruby25-x64/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:39:in `require'
        5: from D:/Ruby25-x64/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `rescue in require'
        4: from D:/Ruby25-x64/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:135:in `require'
        3: from D:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3.rb:2:in `<top (required)>'
        2: from D:/Ruby25-x64/lib/ruby/gems/2.5.0/gems/sqlite3-1.3.13-x64-mingw32/lib/sqlite3.rb:6:in `rescue in <top (required)>'
        1: from D:/Ruby25-x64/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require'
D:/Ruby25-x64/lib/ruby/2.5.0/rubygems/core_ext/kernel_require.rb:59:in `require': cannot load such file -- sqlite3/sqlite3_native (LoadError)

Process finished with exit code 1

从网上查找解决办法,怎么都解决不了。后来怀疑自己ruby安装有问题,于是又重新安装了一下带dk的ruby。

成功之后,执行gem install sqlite3 --platform=ruby命令,系统仍然报错,还是找不到sqlite3.h文件。于是从sqlite官网上将代码和windows用的dll文件分别下载下来,执行以下命令,D:\Ruby25-x64>gem install sqlite3 --platform=ruby -- --with-sqlite3-include=D:/software/sqlite  --with-sqlite3-lib=D:/software/sqlite3

其中:--with-sqlite3-include是头文件目录,--with-sqlite3-lib是DLL文件目录。 终于关联成功了,

<internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:86:in `require&#39;: Error loading the &#39;sqlite3&#39; Active Record adapter. Missing a gem it depends on? cannot load such file -- sqlite3/sqlite3_native (LoadError) from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:86:in `require&#39; from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:332:in `block in require&#39; from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:299:in `load_dependency&#39; from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:332:in `require&#39; from /usr/lib/ruby/vendor_ruby/sqlite3.rb:6:in `rescue in <top (required)>&#39; from /usr/lib/ruby/vendor_ruby/sqlite3.rb:2:in `<top (required)>&#39; from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:86:in `require&#39; from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:86:in `require&#39; from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:332:in `block in require&#39; from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:299:in `load_dependency&#39; from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:332:in `require&#39; from /usr/share/rubygems-integration/all/gems/activerecord-6.1.7.3/lib/active_record/connection_adapters/sqlite3_adapter.rb:13:in `<top (required)>&#39; from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:86:in `require&#39; from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:86:in `require&#39; from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:332:in `block in require&#39;
03-11
┌──(root㉿kali)-[/home/kali] └─# sudo journalctl -xe Mar 10 10:09:51 kali beef[77955]: from /usr/share/rubygems-integration/all/gems/activerecord-6.1.7.3/lib/active_record/connection_handling.rb:52:in `establish_connection&#39; Mar 10 10:09:51 kali beef[77955]: from /usr/share/rubygems-integration/all/gems/otr-activerecord-2.1.1/lib/otr-activerecord/activerecord.rb:75:in `establish_connection!&#39; Mar 10 10:09:51 kali beef[77955]: from /usr/share/beef-xss/beef:202:in `<main>&#39; Mar 10 10:09:51 kali beef[77955]: <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:86:in `require&#39;: cannot load such file -- sqlite3/sqlite3_native (LoadError) Mar 10 10:09:51 kali beef[77955]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:86:in `require&#39; Mar 10 10:09:51 kali beef[77955]: from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:332:in `block in require&#39; Mar 10 10:09:51 kali beef[77955]: from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:299:in `load_dependency&#39; Mar 10 10:09:51 kali beef[77955]: from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:332:in `require&#39; Mar 10 10:09:51 kali beef[77955]: from /usr/lib/ruby/vendor_ruby/sqlite3.rb:6:in `rescue in <top (required)>&#39; Mar 10 10:09:51 kali beef[77955]: from /usr/lib/ruby/vendor_ruby/sqlite3.rb:2:in `<top (required)>&#39; Mar 10 10:09:51 kali beef[77955]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:86:in `require&#39; Mar 10 10:09:51 kali beef[77955]: from <internal:/usr/lib/ruby/vendor_ruby/rubygems/core_ext/kernel_require.rb>:86:in `require&#39; Mar 10 10:09:51 kali beef[77955]: from /usr/share/rubygems-integration/all/gems/activesupport-6.1.7.3/lib/active_support/dependencies.rb:332:in `bl
03-11
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值