Vanilla 1.1.4 is a product of Lussumo. More Information: Documentation, Community Support.
1 to 23 of 23
I also have some klayout v0.22 build issue, both case could compile klayout v0.21.19 without problems.
OS: CentOS 6.2 64bit
In file included from /klayout-0.22/src/rba.cc:117:
/usr/lib64/ruby/1.8/x86_64-linux/node.h:398: warning: comma at end of enumerator list
/klayout-0.22/src/rba.cc: In function ?ALUE rba::rb_funcall2_checked(VALUE, ID, int, VALUE*)??
/klayout-0.22/src/rba.cc:427: error: ?_ZOMBIE??was not declared in this scope
OS: MDK 9.2 64bit
gcc -I/klayout-0.22/src -I/klayout-0.22/src -I. -I/usr/lib/qt4/include -I/usr/lib/ruby/1.8/x86_64-linux -Wall -pedantic -Wno-deprecated -Woverloaded-virtual -Wsign-promo -Wsynth -Wno-long-long -Wno-strict-aliasing -DQT_THREAD_SUPPORT -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII -DHAVE_RUBY -c -O3 -m64 -o edtMainService.o /klayout-0.22/src/edtMainService.cc
gmake: *** No rule to make target `QtGui/QTouchEvent', needed by `gsiDeclLayDialogs.o'. Stop.
Hallo both of you,
Please download the tarkit once again - I have applied two minor changes.
The T_ZOMBIE problem is because the rba.cc file has trouble compiling with Ruby 1.8. Frankly I was not aware I have to support Ruby 1.8 still. I have fixed the build problem and on first glance it still runs with Ruby 1.8, but nevertheless I'd suggest to switch to Ruby 1.9 which is better tested by myself.
You can do so by installing the appropriate packages (i.e. ruby1.9.2 and ruby1.9.2-dev). Please check if the "ruby" executable gives a 1.9 version, i.e.
$ ruby -v
ruby 1.9.1p378 (2010-01-10 revision 26273) [i486-linux]
Regarding the second issue ("Case2" by chhung): the build was broken for Qt <4.6. The latest tarkit contains a fix for this issue as well.
I hope that helps.
With the new tarkit, the T_ZOMBIE and QtGui problems were fixed, however new issue happened.
OS: MDK 9.2 64bit
Ruby: 1.9.3p194 (2012-04-20 revision 35410) or 1.8.7 (2011-02-18 patchlevel 334)
/klayout-0.22/src/rba.cc: In member function 'void rba::GetBoxValueFunc::op()':
/klayout-0.22/src/rba.cc:1254: error: expected primary-expression before '>' token
/klayout-0.22/src/rba.cc:1254: error: expected primary-expression before ')' token
This problem didn't happen on CentOS 6.2 with Ruby 1.8.7 (2011-06-30 patchlevel 352),
so I have no idea it's a compiler issue or others.
I think that is a compiler issue. Which gcc version are you using? I'd say it's a pretty old one. I have tested myself with 4.3.2, 4.4.3 and 4.7.1 which I think is a fair cross section of the recent ones.
You may be able to solve that by using the following patch in line 1254 of rba.cc:
mp_ret = bo->value ().morph<R> ().native_ptr ();
use that line:
mp_ret = bo->value ().template morph<R> ().native_ptr ();
The template keyword will tell the compiler that "morph" is a template member and requires a template parameter.
Please give me feedback if that works. I'll include the patch in the source then.
I tried the patch in line 1254 of rba.cc, and it fixed the compiler issue, thank you so much.
Currently our gcc version is v4.0.1, although it's really old but we are not able to upgrade it now.
Finally we success compiled the binary code ok with the combination:
ruby: 1.9.3p194 or 1.8.7p334
thank you for the feedback. I will add the patch to the source.
apparently there is no SSL support compiled into your Qt installation. I can't recall exactly, but it came for free on my installation. Maybe I had installed openSSL already.
If you need a quick workaround you can remove or disable the gsiDeclQSsl*.cc source files. There is no dependency on these files - they just contribute Ruby bindings through registration of method handlers.
Please try to remove the "QT3_SUPPORT" defines from the project. They are not required and apparently they create conflicts in your built of the Qt libraries. I shall remove them in the next minor release.
If this define is set, the Qt headers offers more methods which cause this ambiguity issue.
That is quite unusual. There is no "QtWidgets/QAction" included somewhere in KLayout's source code. Does VC++ tell which compilation unit this problem occurs in?
BTW: I am using VS 2010 express myself but with a somewhat older Qt version. Maybe 4.8.4 requires some other #define switches.
Your problems indicate there is an issue with UIC (the user interface compiler of Qt). Apparently it generates output which won't compile. Since UIC is called by VC++ according to the custom rule definitions I assume there is something wrong with your Qt integration in VC++. When I started with VS 2010, I had to do the integration myself. I think you installed some VisualStudio plugin which appears to be available now.
I strongly assume that your UIC comes from Qt5, not from Qt4. Both are not compatible apparently. If so, which plugin did you install? Did it come from Qt4?
I guess the Qt 5 plugin was overwriting the path to uic.exe. Because of that, the uic is no generating code which is compatible with Qt 4. Maybe it helps removing the Qt 5 plugin an reinstalling the Qt 4 plugin. I don't think this is related to some internet connection. It's just a matter of where Visual Studio takes the uic.exe from.
I was not using the plugin myself - when I was setting up the Qt environment there was no plugin and I had to do it manually by setting up the proper custom build rules for Visual Studio.
it should compile if you replace the line 422
std::map<std::pair <db::LayerProperties, int>, std::string>::const_iterator ln = name_for_layer.find (*ll);
by this one:
std::map<std::pair <db::LayerProperties, int>, std::string, LPIPairCompareOp>::const_iterator ln = name_for_layer.find (*ll);
I am doing my builds with Visual Studio 2010 and the STLPort library which turned out to be much better in performance and memory footprint. With this library the compile error does not happen. I very much recommend using that library instead of the STL which comes with VC++. Please see the instructions in http://www.klayout.de/build.html - "Building KLayout for Windows 32 bit and 64 bit with Visual Studio". Please note that you'll have to use the STLPort and set the STLPORT environment variable to the installation path to build with STLPort.