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

今天试着用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文件目录。 终于关联成功了,

扫描二维码关注公众号,回复: 10683110 查看本文章
发布了30 篇原创文章 · 获赞 10 · 访问量 5262

猜你喜欢

转载自blog.csdn.net/wufeng_no1/article/details/86481036