Klayout Compilation error

edited July 2014 in General
Hi Matthias,

I'm trying to compile klayout-0.23.5 and getting the following error:
gmake[1]: *** No rule to make target `node.h', needed by `rba.o'. Stop.

GCC = gcc version 4.8.2 (GCC)
uname = Linux 2.6.18-194.el5 x86_64 GNU/Linux

running with:
./build.sh -qt /path/to/qt4/v4.7.4 -rblib /path/to/ruby-v1.9.3-p0/Linux/RHEL4.0-2007-x86_64/lib/libruby-static.a -rbinc /path/to/ruby-v1.9.3-p0/Linux/RHEL4.0-2007-x86_64/include/ruby-1.9.1 -rbinc2 /path/to/ruby-v1.9.3-p0/Linux/RHEL4.0-2007-x86_64/include/ruby-1.9.1/x86_64-linux

Is it something related to incorrect ruby lib file ?
I'm not sure how to debug this further.

Please guide to figure out on how to resolve this.

Thanks in advance.

Regards,
Acku

Comments

  • edited July 2014

    Hi Acku,

    You'll get this message if the version of your ruby interpreter does not match the libraries given in the build command.

    You don't need to specify -rbinc, -rblib etc. Just make sure you have the ruby interpreter in your path or that you have specified the ruby interpreter with the -ruby command line argument.

    For example, if ruby 1.9.x is called "ruby1.9" on your system, just use

    ./build.sh -ruby ruby1.9 -qt /path/to/qt4/v4.7.4
    

    Or if you have the ruby interpreter somewhere else, you can use

    export PATH=/path/to/ruby1.9/bin:$PATH
    ./build.sh -qt /path/to/qt4/v4.7.4
    

    Matthias

  • edited November -1
    Hi Matthias,

    Thanks a lot.

    I was trying to compile with static ruby library as the ruby installation did not have the shared object files.
    It turns out that the default configure for ruby installation do not create the shared object file.

    I reinstalled ruby with --enable-shared and after that the klayout build.sh script took all the paths and lib files automatically.

    Klayout is installed successfully and I'm now excited to use loads of new APIs added in the 0.23 version.

    Thanks again.

    Regards,
    Acku
  • edited November -1

    Hi Acku,

    the message is typical effect of having a mismatch between library and ruby interpreter version. If no specific command is given, the build script incokes "ruby" in order to determine the Ruby version. If you don't specify a library, it will also use the information provided by the interpreters configuration data to find the libraries. So usually there is no need to configure anything, you'll just have to make sure the interpreter is in the path and the ruby libraries/headers are installed properly. BTW: KLayout should be able to build against shared and static libraries since 0.23, so any proper installation should do.

    I'm using Ubuntu 12.06LTS with ruby1.9.1 and ruby1.9.1-dev packages. That's all - no need to configure the build script.

    If you give a library it has to match with the interpreter, otherwise you'll get the error you mentioned.

    Matthias

Sign In or Register to comment.