|
|||
|
> Roger, could you give some more guidance on what gem/extconf switches
> are required to get tk_as_gem built when Tk is installed somewhere > other than C:\Tcl? Looks like I was hard coding it to /Tcl (my bad). Give 'er a shot now. ex: gem install tk_as_gem -- --with-tcl-dir=/installs/Tcl --with-tk-dir=/installs/Tcl > Also, is there anything I can do to help diagnose the hanging problem > that happens on my other computer (which does have C:\Tcl)? Typically for me this has meant I don't have tk84.dll in my path. You can make sure it is using the whichr gem, if desired. c:\dev_old>gem install os whichr c:\dev_old>whichr tk*.dll -a higher in the list is executed first e:\Tcl\bin\tk84.dll (is not executable) (it should show one) -r -- Posted via http://www.ruby-forum.com/. |
|
|
||||
|
||||
|
|
|
|||
|
On Fri, Feb 19, 2010 at 3:29 PM, Roger Pack <rogerpack2005@gmail.com> wrote:
>> Roger, could you give some more guidance on what gem/extconf switches >> are required to get tk_as_gem built when Tk is installed somewhere >> other than C:\Tcl? > > Looks like I was hard coding it to /Tcl (my bad). > > Give 'er a shot now. > > ex: > > gem install tk_as_gem -- --with-tcl-dir=/installs/Tcl > --with-tk-dir=/installs/Tcl I've finally had success installing tk_as_gem on my home Windows VM and my work Windows machine. It also no longer hangs for long periods of time. On my VM I didn't really have to do anything to make it work, but on my work PC I have everything stored under My Documents since I can't write to C:\. Here is what helped: 1. Upgrade to the newest RubyInstaller package (1.9.1-p378). P243 had a bug where the compilation couldn't finish because it had run out of memory (Errno::ENOMEM). Install the devkit from rubyinstaller.org, if you haven't already. 2. Run gem in a Windows command prompt (cmd) window. I never got it working under MSys. 3. Use "short filenames" (the ones with ~ in them) instead of any file/directory name with spaces. You can find out short filenames in cmd by running dir /x on their parent directories. I couldn't get paths with spaces to work. 4. For convenience, I set a shell variable TCLDIR_. It was set to C:/Docume~1/echris~1/MyDocu~1/Development/Tcl. Note that this has forward slashes instead of backslashes! Gcc doesn't understand backslashes. (The underscore is because I had another variable TCLDIR with backslashes.) 5. Use the command line: gem install --verbose tk_as_gem -- --with-tcl-dir=%TCLDIR% --with-tk-dir=%TCLDIR% I really hope this helps someone. Roger, I don't know if you'd be able to fix things so it can build with pathnames with spaces, or under MSys, but that'd be great. And thanks for the hard work of making this a gem! |
|
|||
|
Roger Pack wrote:
> >> 'ERROR: Error installing tk_as_gem: >> ERROR: Failed to build native extension.' >> >> Any idea what may be wrong? I have both Tcl and Ruby 1.9 installed on >> my C: drive. > > My first guess is that you don't have the devkit installed (if gcc > --version works then you do, though). We'll probably need more info, > like put your mkmf.log output into a pastie and post the link back here > or what not. > GL! > -r Roger, I'm still trying to get tk_to_gem to work on my 64-bit windows. I made sure devkit was installed, and gcc --version works. I'm getting the same error message. I can't seem to locate the mkmf.log file. It doesn't even seem to be created (I did a search of my entire harddrive and only found mkmf.log files for other installs I've done). As mentioned before, it worked fine on my other (32-bit) system. Would there be any 64-bit issues with tk_as_gem? --Alex -- Posted via http://www.ruby-forum.com/. |
|
|||
|
> I'm still trying to get tk_to_gem to work on my 64-bit windows. I made > sure devkit was installed, and gcc --version works. I'm getting the > same error message. I can't seem to locate the mkmf.log file. It > doesn't even seem to be created (I did a search of my entire harddrive > and only found mkmf.log files for other installs I've done). What's the full output? Do you have 32 bit versions of tk and ruby installed, I assume? -rp -- Posted via http://www.ruby-forum.com/. |
|
|||
|
Roger Pack wrote:
> What's the full output? Do you have 32 bit versions of tk and ruby > installed, I assume? > -rp I have ActiveState Active Tcl8.4.19.1 installed, along with Ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-mingw32]. Ruby is working fine with my other apps, and the Active Tcl is working fine with my TK apps if I run them under Ruby 1.8.6. Ruby 1.9 is my default installation (confirmed by ruby -v). When I type gem install tk_as_gem I get: 'Building native extensions. This could take a while... ERROR: Error installing tk_as_gem: ERROR: Failed to build gem native extension. C:/Ruby19/bin/ruby.exe extconf.rb Gem files will remain installed in C:/Ruby19/lib/ruby/gems/1.9.1/gems/tk_as_gem-0.1.0 for inspection. Results logged to C:/Ruby19/lib/ruby/gems/1.9.1/gems/tk_as_gem-0.1.0/gem_make.out' The contents of the gem_make.out file are just 'C:/Ruby19/bin/ruby.exe extconf.rb' I do have devkit in the Ruby19 directory, along with the appropriate /bin stuff from devkit. Other gems install fine. I currently have fxruby and RMagick gems installed and they are working fine. My gem environment is 1.3.6. --Alex -- Posted via http://www.ruby-forum.com/. |
|
|||
|
> The contents of the gem_make.out file are just 'C:/Ruby19/bin/ruby.exe
> extconf.rb' What happens if you try and run ruby extconf.rb? -rp -- Posted via http://www.ruby-forum.com/. |
|
|||
|
Roger Pack wrote:
>> The contents of the gem_make.out file are just 'C:/Ruby19/bin/ruby.exe >> extconf.rb' > > What happens if you try and run ruby extconf.rb? > -rp I'm away from my system this week. When I return I'll try running ruby extconf.rb and let you know the outcome. Thanks --Alex -- Posted via http://www.ruby-forum.com/. |
|
|||
|
Roger Pack wrote:
> What happens if you try and run ruby extconf.rb? > -rp The results of running ruby extconf.rb are: checking for ruby_native_thread_p() in ruby.h... yes checking for rb_errinfo() in ruby.h... yes checking for rb_safe_level() in ruby.h... yes checking for struct RArray.ptr in ruby.h... no checking for struct RArray.len in ruby.h... no checking for tcl.h... no checking for tcl.h in /usr/local/include,/usr/pkg/include,/usr/include,/Tcl/include,/usr/local/include/tcl8.4,/usr/pkg/include/tcl8.4,/usr/include/tcl8.4,/Tcl/include/tcl8.4,/usr/local/include/tcl8.7,/usr/pkg/include/tcl8.7,/usr/include/tcl8.7,/Tcl/include/tcl8.7,/usr/local/include/tcl8.6,/usr/pkg/include/tcl8.6,/usr/include/tcl8.6,/Tcl/include/tcl8.6,/usr/local/include/tcl8.5,/usr/pkg/include/tcl8.5,/usr/include/tcl8.5,/Tcl/include/tcl8.5,/usr/local/include/tcl8.3,/usr/pkg/include/tcl8.3,/usr/include/tcl8.3,/Tcl/include/tcl8.3,/usr/local/include/tcl8.2,/usr/pkg/include/tcl8.2,/usr/include/tcl8.2,/Tcl/include/tcl8.2,/usr/local/include/tcl8.1,/usr/pkg/include/tcl8.1,/usr/include/tcl8.1,/Tcl/include/tcl8.1,/usr/local/include/tcl8.0,/usr/pkg/include/tcl8.0,/usr/include/tcl8.0,/Tcl/include/tcl8.0,/usr/local/include/tcl7.6,/usr/pkg/include/tcl7.6,/usr/include/tcl7.6,/Tcl/include/tcl7.6... yes checking for tk.h... yes checking for Tcl_FindExecutable() in -ltcl8.4... no checking for Tcl_FindExecutable() in -ltcl84... yes checking for Tk_Init() in -ltk8.4... no checking for Tk_Init() in -ltk84... yes checking for rb_hash_lookup() in ruby.h... yes creating Makefile As a reminder, I have ActiveState Tcl/Tk 8.4 installed in C:\Tcl --Alex -- Posted via http://www.ruby-forum.com/. |
|
|||
|
> checking for tk.h... yes > checking for Tcl_FindExecutable() in -ltcl8.4... no > checking for Tcl_FindExecutable() in -ltcl84... yes > checking for Tk_Init() in -ltk8.4... no > checking for Tk_Init() in -ltk84... yes > checking for rb_hash_lookup() in ruby.h... yes > creating Makefile And then when you run make? -r -- Posted via http://www.ruby-forum.com/. |
|
|||
|
>
> And then when you run make? > -r after running 'make' the results are: gcc -shared -s -o tcltklib.so stubs.o tcltklib.o -L. -LC:/Ruby19/lib -LC:/Tcl/lib -L. -Wl,--enable-auto-image-base,--enable-auto-import -lmsvcrt-ruby191 -ltk84 -ltcl84 -lshell32 -lws2_32 Then I do 'make install' and get the contents of the attached .txt file. After all is said and done, then when I try to run a ruby tk app I get the following error: C:/Ruby19/lib/ruby/site_ruby/1.9.1/tk.rb:7 in `require': no such file to load - tkutil (Load Error) from C:/Ruby19/lib/ruby/site_ruby/1.9.1/tk.rb:7:in `<top (required)>' --Alex Attachments: http://www.ruby-forum.com/attachment...og_install.txt -- Posted via http://www.ruby-forum.com/. |
|
|||
|
Alex DeCaria wrote:
>> >> And then when you run make? >> -r > > after running 'make' the results are: > > gcc -shared -s -o tcltklib.so stubs.o tcltklib.o -L. -LC:/Ruby19/lib > -LC:/Tcl/lib -L. -Wl,--enable-auto-image-base,--enable-auto-import > -lmsvcrt-ruby191 -ltk84 -ltcl84 -lshell32 -lws2_32 that it odd it should be creating several .so files e:\>gem which tkutil E:/installs/ruby191p376/lib/ruby/gems/1.9.1/gems/tk_as_gem-0.1.0/lib/tkutil.so e:\>gem which tcltklib E:/installs/ruby191p376/lib/ruby/gems/1.9.1/gems/tk_as_gem-0.1.0/lib/tcltklib.so What does yours say for those commands after installing the gem? My guess is that they exist but somehow aren't finding the dll's right or something. If you have the file tkutil.so, you can train "dependency walker" on it [1], and it might inform you of missing dependencies or what not... Let me know how it goes. -r [1] http://www.dependencywalker.com/ -- Posted via http://www.ruby-forum.com/. |
|
|||
|
gem which tkutil results in:
ERROR: Can't find ruby library file or shared library tkutil gem which tcltklib results in: C:/Ruby19/lib/ruby/site_ruby/1.9.1/i386-msvcrt/tcltklib.so If I search my entire C: drive for tkutil.so it finds a copy in my old Ruby 1.8 installation, but not in the Ruby 1.9 installation. I don't suppose I could just copy the file from the 1.8 install to the 1.9 install? If so, where should I put it? --Alex -- Posted via http://www.ruby-forum.com/. |
|
|||
|
> gem which tcltklib results in: > C:/Ruby19/lib/ruby/site_ruby/1.9.1/i386-msvcrt/tcltklib.so That's the built-in one, I think, not the gem one...and this is after a successful gem install? "gem search tk_as_gem" lists something? what does "gem which tk" yield? You might get some traction in building the gem on you 32 bit box and then copying over that entire ruby version to your 64 bit box, too. GL! -r -- Posted via http://www.ruby-forum.com/. |
|
|||
|
Roger Pack wrote:
> You might get some traction in building the gem on you 32 bit box and > then copying over that entire ruby version to your 64 bit box, too. > GL! > -r That worked! I copied the entire tk_as_gem-0.1.0 directory from my 32 bit install to the 64 bit machine, and it worked first time! Thanks for the tip. I have two additional questions: 1) Will the tk_as_gem work with a later version of Tcl/Tk, or do I need to stick with the 8.4 version I am using now? 2) Any ideas as to why the Tk apps with Ruby 1.9 load so slow compared to the way it was on Ruby 1.8? Again, thanks for all your help. I'm happy that I can at least run my apps now. --Alex -- Posted via http://www.ruby-forum.com/. |
|
|||
|
> 1) Will the tk_as_gem work with a later version of Tcl/Tk, or do I need > to stick with the 8.4 version I am using now? I think it will work with 8.5 > 2) Any ideas as to why the Tk apps with Ruby 1.9 load so slow compared > to the way it was on Ruby 1.8? Nope. If you can reproduce it in Linux, you could ping core and ask them why they think it's slow (or anybody else out there?). rp -- Posted via http://www.ruby-forum.com/. |
|
|
![]() |
| Popular Tags in the Forum |
| library, ruby |
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| question about multiple ruby + gems installations for dev/test/prod | Alex Rice | Newsgroup comp.lang.ruby | 6 | 12-28-2009 09:37 PM |
| [ANN] Ruby-Tk LIbraries Runtime Library 3.0 and Gestalt Items | Arndt Roger Schneider | Newsgroup comp.lang.ruby | 4 | 11-10-2009 01:34 PM |
| [ANN] rice-1.1.0 with Ruby 1.9.0 compatibility! | Jason Roelofs | Newsgroup comp.lang.ruby | 3 | 04-27-2009 03:34 PM |
| Can Ruby stay ahead ? | Suresh Kk | Newsgroup comp.lang.ruby | 25 | 04-16-2009 01:34 AM |
| Re: Extensive SAS Library | Jules Bosch | Newsgroup comp.soft-sys.sas | 0 | 07-08-2007 07:31 PM |