所以,我不能为我的生活做好这项工作。我的最终目标是安装和运行dbd-odbc gem,从我读过的多个内容中,我需要在dbd-odbc gem旁边安装ODBC binding ruby。好吧,我可以安装dbd-odbc gem就好了,但是当我尝试安装绑定时,它会像我这样在我身上:
Building native extensions. This could take a while... ERROR: Error installing ruby-odbc-0.9998.gem: ERROR: Failed to build gem native extension.` c:/tools/ruby/ruby-1.9.1-p376/bin/ruby.exe extconf.rb checking for version.h... *** 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 --srcdir=. --curdir --ruby=c:/tools/ruby/ruby-1.9.1-p376/bin/ruby --with-odbc-dir --without-odbc-dir --with-odbc-include --without-odbc-include=${odbc-dir}/include --with-odbc-lib --without-odbc-lib=${odbc-dir}/lib c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:364:in 'try_do': The complier failed to generate an executable file. (RuntimeError) You have to install development tools first. from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:433:in 'try_cpp' from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:811:in 'block in have_header' from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:670:in 'block in checking_for' from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:276:in 'block (2 levels) in postpone' from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:250:in 'open' from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:276:in 'block in postpone' from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:250:in 'open' from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:272:in 'postpone' from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:669:in 'checking_for' from c:/tools/ruby/ruby-1.9.1-p376/lib/ruby/1.9.1/mkmf.rb:810:in 'have_header' from extconf.rb:22:in ''
所以...通读它,它说我必须先安装开发工具。好又花花公子。我去here,抓住开发工具包。我徘徊here,并阅读有关如何安装它的说明。我安装它。
在旁注 - 我已经尝试过从ruby安装程序站点一键安装1.9.1。我已经尝试过使用预编译的msw-32 ruby二进制文件,在1.8.6,1.8.7和1.9.1之下。他们都没有工作
我会坚持使用一键式安装程序,因为这就是我遇到的所有说明似乎都在使用。精细。它说要编辑我的fstab文件。我做。这是我目前的设置:
我的ruby安装位于:C:\tools\ruby\ruby19
devkit已被解压缩到这个目录中,我可以检查/ bin并在那里看到gcc.bat,make.bat和sh.bat。
我按照说明修改我的devkit / msys / 1.0.11 / etc / fstab文件。它现在看起来像这样:
C:/tools/ruby/ruby19/devkit/gcc/3.4.5 /mingw
C:/tools/ruby/ruby19/devkit/msys/1.0.11/usr/local /usr/local
无论我做什么,我都无法为我的生活获取odbc绑定gem来编译为原生扩展。我一遍又一遍地得到同样的错误。这非常令人沮丧 - 请帮忙!
答案 0 :(得分:2)
你自杀了。
对于Win32操作系统的DLL 0.997可在i386-msvcrt-ruby-odbc.zip中找到。它包含 文件odbc.so和odbc_utf8.so 需要复制到 ... / ruby / 1.8 / i386-msvcrt目录 基于MSVC的Ruby 1.8安装。
尝试将这些文件放在推荐的位置,然后安装该版本的gem,看看它是怎么回事。
答案 1 :(得分:2)
我有一个非常类似的问题,试图让DBI和ODBC在Windows中使用Ruby 1.9.Ruby 1.8运行良好,但1.9提出了很多问题。终于搞定了。
答案 2 :(得分:1)
好的,我认为这是最低限度的。我卸载了所有东西:c:\ ruby,MinGW,MSYS,我试图让它运行的所有东西。
然后我:
development:
adapter: sqlserver
mode: odbc
dsn: dev_travel_dsn
username: some_user
password: some_secret
host: some_host
我运行了“rake db:schema:dump”,它运行得很好。
这很奇怪,但即使你在DSN管理器中放了很多相同的东西,你也必须将它们放在database.yml中。
无论如何,这些似乎是使用Sql Server / Rails 2.3.5 / Windows的最低要求。
答案 3 :(得分:1)
这对我来说也适用于rails 3。我在这个过程中遇到了两个问题。 1. Ruby 1.9.2不允许我安装ruby-odbc所以我切换回1.8.7。 2.对于Rails 3,您必须在gemfile中包含以下行:
gem'activerecord-sqlserver-adapter'
gem'ruby-odbc'
之后,上述说明完美无瑕!
答案 4 :(得分:1)
Ron,为了这一切工作,你还记得在ODBC数据源中创建一个新的ODBC连接吗?
对于Ruby 1.8,你不需要“制造”任何东西;从i386-msvcrt-ruby-odbc.zip放置那些odbc文件就足够了(ch-werner.de/rubyodbc上提供的说明)
你下载了dbi& dbd-odbc gems?