From: Daniel Berger Date: 2006-07-01T10:32:53+09:00 Subject: Problem with gems, Windows, C extension ------=_Part_19532_8976479.1151717568487 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi all, Ruby 1.8.4 (one click) gems 0.9.0 I've got a C extension that I'm trying to install via gems on my Windows box called 'net-proto'. I can build and install the gem locally with no problem. However, when I try to install it remotely I get this error: C:\ruby\src>gem install net-proto Building native extensions. This could take a while... *** 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:/ruby/bin/ruby ERROR: While executing gem ... (RuntimeError) ERROR: Failed to build gem native extension. Gem files will remain installed in c:/ruby/lib/ruby/gems/1.8/gems/net- proto-1.0.1 for inspection. I definitely have cl in my %PATH% so I'm not sure why it's not picking it up: C:\>cl -v Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8168 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. There is no mkmf.log and the gem_make.out file is empty. Below is the gemspec I used to build the gem currently on RubyForge: require "rubygems" summary = "The net-proto package provides the getprotobyname(), " summary += "getprotobynumber() and the getprotoent() methods for Ruby." spec = Gem::Specification.new do |gem| gem.name = "net-proto" gem.version = "1.0.1" gem.author = "Daniel J. Berger" gem.email = "djberg96@gmail.com" gem.homepage = "http://www.rubyforge.org/projects/sysutils" gem.platform = Gem::Platform::RUBY gem.summary = summary gem.description = summary gem.test_file = "test/tc_netproto.rb" gem.has_rdoc = true gem.extra_rdoc_files = ["CHANGES","README"] gem.rubyforge_project = "sysutils" files = Dir["doc/*"] + Dir["test/*"] + Dir["[A-Z]*"] files.delete_if{ |item| item.include?("CVS") } gem.files = files end if $0 == __FILE__ spec.required_ruby_version = '>= 1.8.0' spec.extensions = ["extconf.rb"] case RUBY_PLATFORM when /win32|windows|mingw|cygwin/i file = 'lib/net/windows.c' when /linux/i file = 'lib/net/linux.c' when /sunos|solaris/i file = 'lib/net/sunos.c' else file = 'lib/net/generic.c' end spec.files += ['lib/version.h', file] Gem.manage_gems Gem::Builder.new(spec).build end Any ideas? Thanks, Dan ------=_Part_19532_8976479.1151717568487--