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
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
Or if you have the ruby interpreter somewhere else, you can use
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
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