This site contains older material on Eiffel. For the main Eiffel page, see http://www.eiffel.com.

Precompiled library missing

Problem

When I try to compile my system, EiffelBench reports:

    Error code: VD42
    Lace error: precompiled directory/file is unreadable.
    What to do: make sure that the directory/file exists
    and that appropriate permissions are set
    ("read" for files, "read/execute" for directories).
    

(See also VD43 warning.)

Explanation

Your Ace file is referencing a precompiled library which was not found on your system.

    (Perhaps the library is there but the corresponding directory is unreadable. This is unlikely, since the installation procedure correctly sets up the permissions, but if you feel the library is there you may want to check whether the permissions may have been changed inadvertently.)

Fix

If you don't have a C compiler, any serious use of Eiffel requires a precompiled library. At the minimum you should have a precompiled version of EiffelBase, which includes the Kernel Library. You may also, among others, use WEL (the Windows Eiffel Library) in precompiled form. Note that precompiled WEL includes precompiled Base, so you don't need both.

There are three solutions, detailed next:

Download a precompiled library or libraries.

Precompile the needed libraries yourself.

Do not use precompilation in your project.

If you do not have a C compiler, the first solution is the only applicable one.

Note that if you do rely on precompiled libraries (first and second solutions), you will need a different version of the precompiled libraries in multithreaded and non-multithreaded modes. Instead of base and wel use base-mt and wel-mt in multithreaded mode. Make sure that the precompiled entry in the Ace file references the version that you need for your system.

    Downloading precompiled libraries

    Precompiled Base and WEL are available in both multithreaded and non-multithreaded mode from our web site http://eiffel.com. Follow the "Download" links.

    Precompiling a library yourself

    If you have a C compiler, you can precompile libraries yourself by starting an EiffelBench project in

      $EIFFEL4\precomp\spec\windows\libname
      
    where libname may be one of: base, wel, base-mt, wel-mt, and selecting precompile from the compile menu. (From the command line use es4 -precompile.)

    Getting along without precompiled libraries

    If you have a C compiler, you may compile a project without precompiled libraries. Just comment out any precompiled entries in your Ace file. The first compilation will take longer than if you rely on the precompiled versions, since you will have to recompile the whole library (but only the first time around). There is also a space penalty, since you must include the information for all the library classes as part of your project, rather than sharing it.

If you still have a problem, contact ISE customer support http://support.eiffel.com.