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