Fanning Software Consulting

Running iTool Applications on the Virtual Machine

QUESTION: I've written a nice application using iTools, but I can't get it to run on the Virtual Machine. There appear to be run-time dependencies that can't be resolved by Resolve_All. Is there something I'm missing?

ANSWER: The iTool library is an object library, and object source code is not readily identified by Resolve_All. But the good folks at RSI have anticipated this problem and have included an undocumented file, named IDLitResolveITools, in the $IDL/lib/itools/framework subdirectory. Running this program will compile all the necessary iTool procedures and functions that need to be saved in your Save file. The sequence of commands necessary to create a Save file for running with a run-time license or on the IDL Virtual Machine, will look similar to this.

   IDL> .compile myprog
   IDL> Resolve_All
   IDL> IDLitResolveITools
   IDL> Save, File='myprog.sav', /Routines

It is a little more difficult and...uh, non-intuitive to figure out how to include the IDLitResolveITools command in an IDL project so that the project may be saved in a way that it can be run on the Virtual Machine. But you can find all the details on this Tech Tip on the Research Systems web page.

Editor Note: The IDLitResolveITools routine has now been documented and renamed ITResolve. You can find it in the on-line help in later versions of IDL. And now (IDL 7.1) it has been renamed again! It is now called IResolve.

The folks at ITTVIS give this advice for create an IDL Virtual Machine application that involves iTools:

If you are including iTools functionality in your project, and you want to compile a save file with this functionality, you will have to use the IRESOLVE command to add these to your save file. In the "IDL Build Properties" section mentioned above, check the box that says "Execute IDL Command after compiling project files:" and type "IRESOLVE" in the text field. Then click "Apply" and "OK".

Web Coyote's Guide to IDL Programming