Closed crush157 closed 11 years ago
Looks like there's a missing file "gen-cpp/RemoteManager_server.cpp" which is an automatically generated file (from Apache Thrift) so it should have been already made from a previous build step in the Makefile. I'll look into it...
Yep, the previous build step (create_server.rb) has failed, that's the Ruby script producing that file. Can you please post the result of the following command:
make clean; make gen-cpp/RemoteManager_server.cpp 2>&1 | head -50
Here it is.... and thanks for looking into this.
make clean; make gen-cpp/RemoteManagerserver.cpp 2>&1 | head -50
rm -f ozwd.o gen-cpp/RemoteManager.cpp gen-cpp/RemoteManager_server.cpp gen-cpp/ozw_types.h
thrift --gen cocoa --gen cpp --gen csharp --gen erl --gen go --gen java --gen js --gen perl --gen php --gen py --gen rb ozw.thrift
patch -p0 gen-cpp/ozw_types.h < ozw_types.h.patch
patching file gen-cpp/ozw_types.h
Hunk #2 succeeded at 153 (offset 48 lines).
ruby create_server.rb --ozwroot=../open-zwave --thriftroot=/usr/local/include/thrift
Parsing:
/home/user1/source/Thrift4OZW/gen-cpp/RemoteManager_server.skeleton.cpp
/home/user1/source/open-zwave/cpp/src/Manager.h
gccxml_cc1plus: error: gccxml_builtins.h: No such file or directory
In file included from /usr/include/c++/4.6/bits/char_traits.h:41,
from /usr/include/c++/4.6/string:42,
from /usr/local/include/thrift/TProcessor.h:23,
from /usr/local/include/thrift/TDispatchProcessor.h:22,
from /home/user1/source/Thrift4OZW/gen-cpp/RemoteManager.h:10,
from /home/user1/source/Thrift4OZW/gen-cpp/RemoteManager_server.skeleton.cpp:4,
from /tmp/header_wrapper20130318-21990-1nt6ztc:1:
/usr/include/c++/4.6/bits/stl_algobase.h: In function '_OI std::copy_move_a(_II, _II, _OI)':
/usr/include/c++/4.6/bits/stl_algobase.h:378: error: expected primary-expression before ')' token
/usr/include/c++/4.6/bits/stl_algobase.h:378: error: there are no arguments to '__is_trivial' that depend on a template parameter, so a declaration of 'is_trivial' must be available
/usr/include/c++/4.6/bits/stl_algobase.h:378: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/usr/include/c++/4.6/bits/stl_algobase.h:383: error: 'simple' cannot appear in a constant-expression
/usr/include/c++/4.6/bits/stl_algobase.h:384: error: template argument 2 is invalid
/usr/include/c++/4.6/bits/stl_algobase.h: In function '_BI2 std::copy_move_backward_a(_BI1, _BI1, _BI2)':
/usr/include/c++/4.6/bits/stl_algobase.h:573: error: expected primary-expression before ')' token
/usr/include/c++/4.6/bits/stl_algobase.h:573: error: there are no arguments to 'is_trivial' that depend on a template parameter, so a declaration of 'is_trivial' must be available
/usr/include/c++/4.6/bits/stl_algobase.h:578: error: 'simple' cannot appear in a constant-expression
/usr/include/c++/4.6/bits/stl_algobase.h:579: error: template argument 2 is invalid
/usr/include/c++/4.6/bits/stl_algobase.h: In function 'typename gnu_cxx::enable_if<(! std::is_scalar<_Tp>::value), _OutputIterator>::type std::fill_n_a(_OutputIterator, _Size, const _Tp&)':
/usr/include/c++/4.6/bits/stl_algobase.h:731: error: expected `;' before 'niter'
/usr/include/c++/4.6/bits/stl_algobase.h:732: error: 'niter' was not declared in this scope
/usr/include/c++/4.6/bits/stl_algobase.h: In function 'typename __gnu_cxx::enable_if<std::is_scalar<_Tp>::value, _OutputIterator>::type std::fill_n_a(_OutputIterator, _Size, const _Tp&)':
/usr/include/c++/4.6/bits/stl_algobase.h:743: error: expected`;' before 'niter'
/usr/include/c++/4.6/bits/stl_algobase.h:744: error: '__niter' was not declared in this scope
In file included from /usr/include/c++/4.6/string:42,
from /usr/local/include/thrift/TProcessor.h:23,
from /usr/local/include/thrift/TDispatchProcessor.h:22,
from /home/user1/source/Thrift4OZW/gen-cpp/RemoteManager.h:10,
from /home/user1/source/Thrift4OZW/gen-cpp/RemoteManager_server.skeleton.cpp:4,
from /tmp/header_wrapper20130318-21990-1nt6ztc:1:
/usr/include/c++/4.6/bits/chartraits.h: In static member function 'static const char std::char_traits
That's your error: gccxml_cc1plus: error: gccxml_builtins.h: No such file or directory
you need to install gccxml: sudo apt-get install gccxml and its corresponding ruby gem: sudo gem install gccxml_gem --platform ruby
also I seem to have forgotten two "clang" directives in the Makefile, remove them and uncomment the "gcc" ones if the C++ file does not compile. Clang's a new C/C++ compiler which I seem to like more and more every day (faster, more meaningful errors etc etc)
Still not getting a successful build...
RuntimeError: Error executing gccxml command line: /var/lib/gems/1.9.1/gems/gccxml_gem-0.9.3-x86-linux/bin/gccxml -Igen_cpp -I/usr/local/include/thrift -I/home/user1/source/open-zwave/cpp/tinyxml -I/home/user1/source/open-zwave/cpp/src -I/home/user1/source/open-zwave/cpp/src/value_classes -I/home/user1/source/open-zwave/cpp/src/command_classes -I/home/user1/source/open-zwave/cpp/src/platform -DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H /tmp/header_wrapper20130318-23121-1b0meqv -fxml=/tmp/rbgccxml20130318-23121-3uw2m6> cp gen-cpp/RemoteManager_server.cpp gen-cpp/RemoteManager_server.cpp.orig cp: cannot stat `gen-cpp/RemoteManager_server.cpp': No such file or directory make: *\ [gen-cpp/RemoteManager_server.cpp] Error 1
Whoops, forgot to do the uncomment in the Make file
Well, that still didn't do the trick...
RuntimeError: Error executing gccxml command line: /var/lib/gems/1.9.1/gems/gccxml_gem-0.9.3-x86-linux/bin/gccxml -Igen_cpp -I/usr/local/include/thrift -I/home/user1/source/open-zwave/cpp/tinyxml -I/home/user1/source/open-zwave/cpp/src -I/home/user1/source/open-zwave/cpp/src/value_classes -I/home/user1/source/open-zwave/cpp/src/command_classes -I/home/user1/source/open-zwave/cpp/src/platform -DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H /tmp/header_wrapper20130318-23176-1o2oq99 -fxml=/tmp/rbgccxml20130318-23176-159wnhp> cp gen-cpp/RemoteManager_server.cpp gen-cpp/RemoteManager_server.cpp.orig cp: cannot stat `gen-cpp/RemoteManager_server.cpp': No such file or directory make: *\ [gen-cpp/RemoteManager_server.cpp] Error 1
this means that the previous step (the one's that's generating the missing file) is failing... we need to find out why: What's the FIRST error message in the output of:
make clean; make gen-cpp/RemoteManager_server.cpp
Sorry, just missed it, the error is still in running gccxml, you seem to be lacking the main gccxml executable. What OS/distro are you using? I'm on Ubuntu 12.10 now, this is my version of gccxml installed with APT:
ekarak@ekarak-laptop:~/ozw/Thrift4OZW$ gccxml --version GCC-XML version 0.9.0 ekarak@ekarak-laptop:~/ozw/Thrift4OZW$
here is the first error message.... happens right at the beginning
thrift --gen cocoa --gen cpp --gen csharp --gen erl --gen go --gen java --gen js --gen perl --gen php --gen py --gen rb ozw.thrift patch -p0 gen-cpp/ozw_types.h < ozw_types.h.patch patching file gen-cpp/ozw_types.h Hunk #2 succeeded at 153 (offset 48 lines). ruby create_server.rb --ozwroot=../open-zwave --thriftroot=/usr/local/include/thrift Parsing: /home/user1/source/Thrift4OZW/gen-cpp/RemoteManager_server.skeleton.cpp /home/user1/source/open-zwave/cpp/src/Manager.h gccxml_cc1plus: error: gccxml_builtins.h: No such file or directory In file included from /usr/include/c++/4.6/bits/char_traits.h:41, from /usr/include/c++/4.6/string:42, from /usr/local/include/thrift/TProcessor.h:23, from /usr/local/include/thrift/TDispatchProcessor.h:22, from /home/user1/source/Thrift4OZW/gen-cpp/RemoteManager.h:10, from /home/user1/source/Thrift4OZW/gen-cpp/RemoteManager_server.skeleton.cpp:4, from /tmp/header_wrapper20130318-23323-deb53y:1:
The next error... which continues for a bit
/usr/include/c++/4.6/bits/stl_algobase.h: In function '_OI std::copy_move_a(_II, _II, _OI)': /usr/include/c++/4.6/bits/stl_algobase.h:378: error: expected primary-expression before ')' token /usr/include/c++/4.6/bits/stl_algobase.h:378: error: there are no arguments to '__is_trivial' that depend on a template parameter, so a declaration of 'is_trivial' must be available /usr/include/c++/4.6/bits/stl_algobase.h:378: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) /usr/include/c++/4.6/bits/stl_algobase.h:383: error: '__simple' cannot appear in a constant-expression /usr/include/c++/4.6/bits/stl_algobase.h:384: error: template argument 2 is invalid /usr/include/c++/4.6/bits/stl_algobase.h: In function '_BI2 std::__copy_move_backward_a(_BI1, _BI1, _BI2)': /usr/include/c++/4.6/bits/stl_algobase.h:573: error: expected primary-expression before ')' token ........
It seems as I might not have all the prereqs for the build. Do you have a listing of all package requirements for building? It seems that I did not have the ones you mentioned before.
Ubuntu 12.04.2 LTS
Linux xxxxxx 3.2.0-38-generic #61-Ubuntu SMP Tue Feb 19 12:20:02 UTC 2013 i686 athlon i386 GNU/Linux
It seems I was wrong on the 64bit description above, it is only 32bit.
/user1/source/Thrift4OZW$ gccxml --version GCC-XML version 0.9.0
Yep there's an INSTALL.txt file that contains these dependencies. I seem to recall having the same problem with gccxml in the past, I think it was due to not having support for my gcc version. But on Ubuntu 12.04 this shouldn't be a problem... I'll try on a VM with 12.04 and get back to you
I missed those 2 gccxml items in the list. Sorry for that confusion. I did check the rest of the prereqs and it's all there.
I'm having the same erros as crush157 on Ubuntu 12.10. Any help would be much appreciated.
make clean; make gen-cpp/RemoteManagerserver.cpp 2>&1 | head -50
rm -f ozwd.o gen-cpp/RemoteManager.cpp gen-cpp/RemoteManager_server.cpp gen-cpp/ozw_types.h
thrift --gen cocoa --gen cpp --gen csharp --gen erl --gen go --gen java --gen js --gen perl --gen php --gen py --gen rb ozw.thrift
patch -p0 gen-cpp/ozw_types.h < ozw_types.h.patch
patching file gen-cpp/ozw_types.h
Hunk #2 succeeded at 153 (offset 48 lines).
ruby create_server.rb --ozwroot=../open-zwave --thriftroot=/usr/local/include/thrift
Parsing:
/home/user/ozw/Thrift4OZW2/gen-cpp/RemoteManager_server.skeleton.cpp
/home/user/ozw/open-zwave/cpp/src/Manager.h
gccxml_cc1plus: error: gccxml_builtins.h: No such file or directory
In file included from /usr/include/c++/4.7/bits/char_traits.h:41,
from /usr/include/c++/4.7/string:42,
from /usr/local/include/thrift/TProcessor.h:23,
from /usr/local/include/thrift/TDispatchProcessor.h:22,
from /home/user/ozw/Thrift4OZW2/gen-cpp/RemoteManager.h:10,
from /home/user/ozw/Thrift4OZW2/gen-cpp/RemoteManager_server.skeleton.cpp:4,
from /tmp/header_wrapper20130322-11821-1payedb:1:
/usr/include/c++/4.7/bits/stl_algobase.h: In function '_OI std::copy_move_a(_II, _II, _OI)':
/usr/include/c++/4.7/bits/stl_algobase.h:378: error: expected primary-expression before ')' token
/usr/include/c++/4.7/bits/stl_algobase.h:378: error: there are no arguments to '__is_trivial' that depend on a template parameter, so a declaration of 'is_trivial' must be available
/usr/include/c++/4.7/bits/stl_algobase.h:378: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/usr/include/c++/4.7/bits/stl_algobase.h:383: error: 'simple' cannot appear in a constant-expression
/usr/include/c++/4.7/bits/stl_algobase.h:384: error: template argument 2 is invalid
/usr/include/c++/4.7/bits/stl_algobase.h: In function '_BI2 std::copy_move_backward_a(_BI1, _BI1, _BI2)':
/usr/include/c++/4.7/bits/stl_algobase.h:573: error: expected primary-expression before ')' token
/usr/include/c++/4.7/bits/stl_algobase.h:573: error: there are no arguments to 'is_trivial' that depend on a template parameter, so a declaration of 'is_trivial' must be available
/usr/include/c++/4.7/bits/stl_algobase.h:578: error: 'simple' cannot appear in a constant-expression
/usr/include/c++/4.7/bits/stl_algobase.h:579: error: template argument 2 is invalid
/usr/include/c++/4.7/bits/stl_algobase.h: In function 'typename gnu_cxx::enable_if<(! std::is_scalar<_Tp>::value), _OutputIterator>::type std::fill_n_a(_OutputIterator, _Size, const _Tp&)':
/usr/include/c++/4.7/bits/stl_algobase.h:731: error: expected `;' before 'niter'
/usr/include/c++/4.7/bits/stl_algobase.h:732: error: 'niter' was not declared in this scope
/usr/include/c++/4.7/bits/stl_algobase.h: In function 'typename __gnu_cxx::enable_if<std::is_scalar<_Tp>::value, _OutputIterator>::type std::fill_n_a(_OutputIterator, _Size, const _Tp&)':
/usr/include/c++/4.7/bits/stl_algobase.h:743: error: expected`;' before 'niter'
/usr/include/c++/4.7/bits/stl_algobase.h:744: error: '__niter' was not declared in this scope
In file included from /usr/include/c++/4.7/string:42,
from /usr/local/include/thrift/TProcessor.h:23,
from /usr/local/include/thrift/TDispatchProcessor.h:22,
from /home/user/ozw/Thrift4OZW2/gen-cpp/RemoteManager.h:10,
from /home/user/ozw/Thrift4OZW2/gen-cpp/RemoteManager_server.skeleton.cpp:4,
from /tmp/header_wrapper20130322-11821-1payedb:1:
/usr/include/c++/4.7/bits/chartraits.h: In static member function 'static const char std::char_traits
gccxml_cc1plus: error: gccxml_builtins.h: No such file or directory
2013/3/22 mattinbits notifications@github.com
I'm having the same erros as crush157 on Ubuntu 12.10. Any help would be much appreciated.
make clean; make gen-cpp/RemoteManager_server.cpp 2>&1 | head -50 rm -f ozwd*.o gen-cpp/RemoteManager.cpp gen-cpp/RemoteManager_server.cpp gen-cpp/ozw_types.h thrift --gen cocoa --gen cpp --gen csharp --gen erl --gen go --gen java --gen js --gen perl --gen php --gen py --gen rb ozw.thrift patch -p0 gen-cpp/ozw_types.h < ozw_types.h.patch patching file gen-cpp/ozw_types.h Hunk #2 https://github.com/ekarak/Thrift4OZW/issues/2 succeeded at 153 (offset 48 lines). ruby create_server.rb --ozwroot=../open-zwave --thriftroot=/usr/local/include/thrift Parsing: /home/user/ozw/Thrift4OZW2/gen-cpp/RemoteManager_server.skeleton.cpp /home/user/ozw/open-zwave/cpp/src/Manager.h gccxml_cc1plus: error: gccxml_builtins.h: No such file or directory In file included from /usr/include/c++/4.7/bits/char_traits.h:41, from /usr/include/c++/4.7/string:42,
from /usr/local/include/thrift/TProcessor.h:23, from /usr/local/include/thrift/TDispatchProcessor.h:22, from /home/user/ozw/Thrift4OZW2/gen-cpp/RemoteManager.h:10, from /home/user/ozw/Thrift4OZW2/gen-cpp/RemoteManager_server.skeleton.cpp:4, from /tmp/header_wrapper20130322-11821-1payedb:1: /usr/include/c++/4.7/bits/stl_algobase.h: In function '_OI std::copy_move_a(_II, _II, _OI)': /usr/include/c++/4.7/bits/stl_algobase.h:378: error: expected primary-expression before ')' token /usr/include/c++/4.7/bits/stl_algobase.h:378: error: there are no arguments to '__is_trivial' that depend on a template parameter, so a declaration of 'is_trivial' must be available /usr/include/c++/4.7/bits/stl_algobase.h:378: error: (if you use '-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated) /usr/include/c++/4.7/bits/stl_algobase.h:383: error: 'simple' cannot appear in a constant-expression /usr/include/c++/4.7/bits/stl_algobase.h:384: error: template argument 2 is invalid /usr/include/c++/4.7/bits/stl_algobase.h: In function '_BI2 std::copy_move_backward_a(_BI1, _BI1, _BI2)': /usr/include/c++/4.7/bits/stl_algobase.h:573: error: expected primary-expression before ')' token /usr/include/c++/4.7/bits/stl_algobase.h:573: error: there are no arguments to 'is_trivial' that depend on a template parameter, so a declaration of 'is_trivial' must be available /usr/include/c++/4.7/bits/stl_algobase.h:578: error: 'simple' cannot appear in a constant-expression /usr/include/c++/4.7/bits/stl_algobase.h:579: error: template argument 2 is invalid /usr/include/c++/4.7/bits/stl_algobase.h: In function 'typename _gnu_cxx:: enable_if<(! std::is_scalar<_Tp>::value), OutputIterator>::type std::fill_n_a(_OutputIterator, _Size, const _Tp&)': /usr/include/c++/4.7/bits/stl_algobase.h:731: error: expected ;' before '__niter' /usr/include/c++/4.7/bits/stl_algobase.h:732: error: 'niter' was not declared in this scope /usr/include/c++/4.7/bits/stl_algobase.h: In function 'typename gnu_cxx::__enable_ifstd::is_scalar<_Tp::value, _OutputIterator>::type std::fill_n_a(_OutputIterator, _Size, const _Tp&)': /usr/include/c++/4.7/bits/stlalgobase.h:743: error: expected;' before ' _niter' /usr/include/c++/4.7/bits/stl_algobase.h:744: error: 'niter' was not declared in this scope In file included from /usr/include/c++/4.7/string:42,
from /usr/local/include/thrift/TProcessor.h:23, from /usr/local/include/thrift/TDispatchProcessor.h:22, from /home/user/ozw/Thrift4OZW2/gen-cpp/RemoteManager.h:10, from /home/user/ozw/Thrift4OZW2/gen-cpp/RemoteManager_server.skeleton.cpp:4, from /tmp/header_wrapper20130322-11821-1payedb:1: /usr/include/c++/4.7/bits/char_traits.h: In static member function 'static const char* std::char_traits::find(const char*, std::size_t, const char&)': /usr/include/c++/4.7/bits/char_traits.h:265: error: '__builtin_memchr' was not declared in this scope In file included from /usr/include/c++/4.7/string:43,
from /usr/local/include/thrift/TProcessor.h:23, from /usr/local/include/thrift/TDispatchProcessor.h:22, from /home/user/ozw/Thrift4OZW2/gen-cpp/RemoteManager.h:10, from /home/user/ozw/Thrift4OZW2/gen-cpp/RemoteManager_server.skeleton.cpp:4, from /tmp/header_wrapper20130322-11821-1payedb:1: /usr/include/c++/4.7/bits/allocator.h: At global scope: /usr/include/c++/4.7/bits/allocator.h:152: error: expected primary-expression before ')' token /usr/include/c++/4.7/bits/allocator.h:152: error: there are no arguments to '__is_empty' that depend on a template parameter, so a declaration of '__is_empty' must be available
— Reply to this email directly or view it on GitHubhttps://github.com/ekarak/Thrift4OZW/issues/6#issuecomment-15304584 .
Elias Karakoulakis Electrical & Computer Engineer NTUA Athens Msc Information Systems, AUEB Athens KNX Advanced Partner
OK resolved this based on the similar error reported here: https://github.com/jasonroelofs/rbplusplus/issues/14
l had followed the instructions in INSTALL but looks like I had both "sudo gem install gccxml_gem" and "sudo gem install gccxml_gem --platform ruby" in my environment.
I ran "sudo gem uninstall gccxml_gem" and "sudo gem install gccxml_gem --platform ruby" and am able to make successfully.
With mattinbits comment, I reinstalled the gccxml_gem as stated and with another adjustment for libraries, I get it to compile. Seems I was struggling with the install dependencies as Elias was updating that documentation as I was downloading and building.
All good now.
Thanks
another note, stompserver_ng will require you to install eventmachine and uuid gems.
Just FYI I didn't have much luck getting stompserver_ng working, so I've been using coilMQ to test the receipt of events.
any STOMP server will do, its just the footprint & startup time that matters most, especially if you're running on an embedded environment...
2013/3/22 mattinbits notifications@github.com
Just FYI I didn't have much luck getting stompserver_ng working, so I've been using coilMQ to test the receipt of events.
— Reply to this email directly or view it on GitHubhttps://github.com/ekarak/Thrift4OZW/issues/6#issuecomment-15314582 .
Elias Karakoulakis Electrical & Computer Engineer NTUA Athens Msc Information Systems, AUEB Athens KNX Advanced Partner
Also, ozwd expects the open-zwave-read-only directory under Thrift4OZW and the ruby scripts expect it at the same level as your documentation suggests.
Well, now I'm finding a few other gems missing to run ozwthrift.rb. I'm not a ruby dev so, having a list of required gems that are not part of a base install. Working through the errors.
The stompserver_ng starts up and listens fine against the ozwd.
ozwthrift.rb requires gems onstomp and thrift.
Updated documentation, many thanks for feedback.
I ave tried multiple times and for me not being a ruby expert doesn't help.
Building on Ubuntu 12.04 64bit following the instructions. Latest error today from latest download of files.
RuntimeError: Error executing gccxml command line: /var/lib/gems/1.9.1/gems/gccxml_gem-0.9.3-x86-linux/bin/gccxml -Igen_cpp -I/usr/local/include/thrift -I/home/user1/source/open-zwave/cpp/tinyxml -I/home/user1/source/open-zwave/cpp/src -I/home/user1/source/open-zwave/cpp/src/value_classes -I/home/user1/source/open-zwave/cpp/src/command_classes -I/home/user1/source/open-zwave/cpp/src/platform -DHAVE_INTTYPES_H -DHAVE_NETINET_IN_H /tmp/header_wrapper20130318-21337-110m256 -fxml=/tmp/rbgccxml20130318-21337-1kd283l> cp gen-cpp/RemoteManager_server.cpp gen-cpp/RemoteManager_server.cpp.orig cp: cannot stat `gen-cpp/RemoteManager_server.cpp': No such file or directory make: *\ [gen-cpp/RemoteManager_server.cpp] Error 1
any advice would be appreciated.