我想在 cli 中 rails new 一个练习用的小应用
执行到一半有报错
黄字让我 bundle install,敲完之后 然后我查了一天资料,零零散散的越看越头疼,不知道哪里出了问题,求指教,感谢
先通过 gem install sqlite3
来尝试安装先(缺少依赖必然会报错),然后上网搜索如何安装依赖的教程。一步步解决,这个问题以后装 mysql 的时候也有可能会遇到。 思路都差不多,我一般就是这样一步步去解决的。
先下载 slqite3 源码 https://www.sqlite.org/2020/sqlite-amalgamation-3330000.zip
然后解压到一个目录
然后 ggem install sqlite3 指定 include 文件目录 --with-sqlite3-include=你解压的目录
gem install sqlite3 -- --with-sqlite3-include=d:\sqlite-amalgamation-3320300
感谢大佬,我敲了下,然后有一些密钥错误,弄不太懂
----------------------------以下是 mkmf.log---------------------------------------------
"pkg-config --exists sqlite3" package configuration for sqlite3 is not found find_header: checking for sqlite3.h... -------------------- no
"x86_64-w64-mingw32-gcc -o conftest.exe -IC:/Ruby26-x64/include/ruby-2.6.0/x64-mingw32 -IC:/Ruby26-x64/include/ruby-2.6.0/ruby/backward -IC:/Ruby26-x64/include/ruby-2.6.0 -I. -IC:\Program -D_USE_MINGW_ANSI_STDIO=1 -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0600 -D_MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-fast-math -DTAINTING_SUPPORT conftest.c -L. -LC:/Ruby26-x64/lib -L. -pipe -s -lx64-msvcrt-ruby260 -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi " checked program was: /* begin / 1: #include "ruby.h" 2: 3: #include 4: #include 5: int main(int argc, char **argv) 6: { 7: return 0; 8: } / end */
"x86_64-w64-mingw32-gcc -E -IC:/Ruby26-x64/include/ruby-2.6.0/x64-mingw32 -IC:/Ruby26-x64/include/ruby-2.6.0/ruby/backward -IC:/Ruby26-x64/include/ruby-2.6.0 -I. -IC:\Program -D_USE_MINGW_ANSI_STDIO=1 -DFD_SETSIZE=2048 -D_WIN32_WINNT=0x0600 -D_MINGW_USE_VC2005_COMPAT -D_FILE_OFFSET_BITS=64 -O3 -fno-fast-math -DTAINTING_SUPPORT conftest.c -o conftest.i" conftest.c:5:10: fatal error: sqlite3.h: No such file or directory 5 | #include | ^~~~~~~~~~~ compilation terminated. checked program was: /* begin / 1: #include "ruby.h" 2: 3: #include 4: #include 5: #include / end */
------------------------------以下是 gem_make.out------------------------------------- current directory: C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.2/ext/sqlite3 C:/Ruby26-x64/bin/ruby.exe -I C:/Ruby26-x64/lib/ruby/2.6.0 -r ./siteconf20200818-1584-11k9q0w.rb extconf.rb --with-sqlite3-include=C:\Program Files\sqlite3\download_zip\sqlite-amalgamation-3330000 checking for sqlite3.h... no sqlite3.h is missing. Install SQLite3 from http://www.sqlite.org/ first. *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options.
Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=C:/Ruby26-x64/bin/$(RUBY_BASE_NAME) --with-sqlcipher --without-sqlcipher --with-sqlite3-config --without-sqlite3-config --with-pkg-config --without-pkg-config --with-sqlcipher --without-sqlcipher --with-sqlite3-dir --without-sqlite3-dir --with-sqlite3-include=${sqlite3-dir}/include --with-sqlite3-lib --without-sqlite3-lib=${sqlite3-dir}/lib
To see why this extension failed to compile, please check the mkmf.log which can be found here:
C:/Ruby26-x64/lib/ruby/gems/2.6.0/extensions/x64-mingw32/2.6.0/sqlite3-1.4.2/mkmf.log
@FishAndWhale sqlite3 解压到一个简单的目录 比如 d:\lite 不要带空格也不要有中文 安装完再删除也不影响
gem install sqlite3 -- --with-sqlite3-include=d:\lite\sqlite-amalgamation-3320300
如果觉得麻烦,你完全可以用 choco 安装 sqlite3,再安装 gem,现在用 windows 做 ror 未必就真的那么麻烦。只是资料不多。