質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1383閲覧

windowsにて、gemのsqlite3をインストールしようとするとエラーが出ます。

totoki

総合スコア1

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/05/08 06:52

前提・実現したいこと

Window10のPCにsqlite3をインストールする

発生している問題・エラーメッセージ

Ruby on Railsの環境を構築するために、 コマンドプロンプトにて、gem sqlite3をインストールしようしましたが、 以下のエラーが出ました。 解決方法を教えて頂けると助かります。

該当のソースコード

CMD

1C:\>gem install sqlite3 2Temporarily enhancing PATH for MSYS/MINGW... 3Installing required msys2 packages: mingw-w64-x86_64-sqlite3 4警告: mingw-w64-x86_64-sqlite3-3.31.0-1 は最新です -- スキップ 5Building native extensions. This could take a while... 6ERROR: Error installing sqlite3: 7 ERROR: Failed to build gem native extension. 8 9 current directory: C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.2/ext/sqlite3 10C:/Ruby26-x64/bin/ruby.exe -I C:/Ruby26-x64/lib/ruby/2.6.0 -r ./siteconf20200508-9252-73h80p.rb1 extconf.rb 11*** extconf.rb failed *** 12Could not create Makefile due to some reason, probably lack of necessary 13libraries and/or headers. Check the mkmf.log file for more details. You may 14need configuration options. 15 16Provided configuration options: 17 --with-opt-dir 18 --without-opt-dir 19 --with-opt-include 20 --without-opt-include=${opt-dir}/include 21 --with-opt-lib 22 --without-opt-lib=${opt-dir}/lib 23 --with-make-prog 24 --without-make-prog 25 --srcdir=. 26 --curdir 27 --ruby=C:/Ruby26-x64/bin/$(RUBY_BASE_NAME) 28 --with-sqlcipher 29 --without-sqlcipher 30 --with-sqlite3-config 31 --without-sqlite3-config 32 --with-pkg-config 33 --without-pkg-config 34C:/Ruby26-x64/lib/ruby/2.6.0/mkmf.rb:467:in 'try_do' : The compiler failed to generate an executable file.(RuntimeError) 35You have to instal development tools first. 36 from C:/Ruby26-x64/lib/ruby/2.6.0/mkmf.rb:552:in 'try_link0' 37 from C:/Ruby26-x64/lib/ruby/2.6.0/mkmf.rb:570:in 'try_link' 38 from C:/Ruby26-x64/lib/ruby/2.6.0/mkmf.rb:672:in 'try_ldflags' 39 from C:/Ruby26-x64/lib/ruby/2.6.0/mkmf.rb:1832:in 'pkg_config' 40 from extconf.rb:35:in '<main>' 41 42To see why this extension failed to compile, please check the kkf.log which can be found here: 43 44C:/Ruby26-x64/lib/ruby/gems/2.6.0/extensions/x64-mingw32/2.6.0/sqlite3-1.4.2/mkmf.log 45 46extconf failed, exit code 1 47 48Gem files will remain installed in C:/Ruby26-x64/lib/ruby/gems/2.6.0/gems/sqlite3-1.4.2 for inspection. 49Results logged to C:/Ruby26-x64/lib/ruby/gems/2.6.0/extensions/x64-mingw32/2.6.0/sqlite3-1.4.2/gem_make.out

補足

https://teratail.com/questions/176801
こちらにほぼ同様の質問がありましたが、解決することが出来ませんでしたので質問させて頂きました。

補足情報(FW/ツールのバージョンなど)

ruby version:2.6.6p146
rails version:5.2.4.2
OS:Windows10 64bit

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

コンパイルに必要なライブラリが入ってないと思われます。
mingw-w64-x86_64-sqlite3は入っているようですね。

C:/Ruby26-x64/lib/ruby/gems/2.6.0/extensions/x64-mingw32/2.6.0/sqlite3-1.4.2/mkmf.logを確認しましょう。

投稿2020/05/08 11:19

otn

総合スコア84557

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

totoki

2020/05/09 03:14

otnさん ご回答ありがとうございます。 mkmf.logを確認しました。 Logの内容を確認したところ、ユーザー名が文字化けしていました。 これが原因でエラーが発生している可能性があると思い、日本語のユーザー名を半角英数字に変えようと調べていますが、現時点で変更することが出来ていません。(これは別の問題ですので、解決できない場合は別で質問するようにします。) 以下にlogの内容を記載しました。 もし、お時間があればlogの内容を見て頂けませんか? 宜しくお願い致します。 "pkg-config --exists sqlite3" | pkg-config --libs sqlite3 => "-LC:/Ruby26-x64/msys64/mingw64/lib -lsqlite3\n" "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. -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 -fstack-protector-strong conftest.c -L. -LC:/Ruby26-x64/lib -L. -pipe -s -fstack-protector-strong -lx64-msvcrt-ruby260 -lshell32 -lws2_32 -liphlpapi -limagehlp -lshlwapi " Cannot create temporary file in C:\Users?a??\AppData\Local\Temp\: Invalid argument checked program was: /* begin */ 1: #include "ruby.h" 2: 3: #include <winsock2.h> 4: #include <windows.h> 5: int main(int argc, char **argv) 6: { 7: return 0; 8: } /* end */
otn

2020/05/09 03:53

> Cannot create temporary file in C:\Users?a??\AppData\Local\Temp\: Invalid argument なので、ユーザ名が化けているのが原因です。これは、環境変数 TEMP の内容なので、 例えば C: または D: の直下にでも Tempというフォルダーを作って、 環境変数設定画面で、ユーザー環境変数 TEMPを D:\Temp とかに変更して、コマンドプロンプトを開き直して実行してください。
totoki

2020/05/10 03:16

Cの直下に、Tempフォルダを作成し、ユーザー環境変数TEMPをC:\Tempに変変更してコマンドプロンプトを起動しましたが、C:\users\”ユーザー名”が表示されました。 その後、C:\Tempに移動し、gem install sqlite3を実行しましたが、同じエラーが表示されます。 もう少し調べてみます。
totoki

2020/05/10 05:42

totokiさん 環境変数のTMPの値もC:\Tempに変更しました。 その後、C直下にRailsアプリケーションを作成し、インストールを実行するとエラーが発生することなくインストールが出来ました。 その後、Railsサーバーを立ち上げlocalhost:3000にて、Railsサーバーの画面が表示されました。 数日間、解決できなかったのですが、otnさんから回答して頂いたおかげで解決することができました。 本当にありがとうございました!
otn

2020/05/10 09:32

ああ、TMPの方だったんですね。両方書いておけば良かった。失礼しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問