Archived
This forum has been archived. Please start a new discussion on GitHub.
Ice-3.1 error compiling generated file
xdm
La Coruña, Spain
in Help Center
Hello
I trying to build my application with the latest Ice-3.1.0 when compile one of generated files i get this gcc error, note that i build Ice-3.1.0 with gcc-3.3.6 that isn't one of supported compilers but all Ice test runs well, i 'll try to update to a supported compiler ajd observer if this resolve the problem but i paste the code that produce the error here
slice code
I trying to build my application with the latest Ice-3.1.0 when compile one of generated files i get this gcc error, note that i build Ice-3.1.0 with gcc-3.3.6 that isn't one of supported compilers but all Ice test runs well, i 'll try to update to a supported compiler ajd observer if this resolve the problem but i paste the code that produce the error here
slice code
#ifndef _Oz_Base_SysTypes_ICE_ #define _Oz_Base_SysTypes_ICE_ #include <Ice/Identity.ice> module Oz { module Base { class OnRez; class OnRezServer; dictionary<string,Ice::Identity> StringIdMap; dictionary<Ice::Identity,OnRez*> IdProxyMap; dictionary<string,OnRez*> StringProxyMap; ["java:type:java.util.ArrayList"]sequence<Ice::Identity> Identities; ["java:type:java.util.TreeMap"]dictionary<string,Identities> AccesMap; ["java:type:java.util.ArrayList"]sequence<string> Strings; ["java:type:java.util.TreeMap"]dictionary<string,string> StringMap; }; }; #endif
0
Comments
-
gcc ouput
i686-pc-linux-gnu-g++ -c -pipe -Wall -W -g -D_REENTRANT -fPIC -DQT_THREAD_SUPPORT -I/usr/qt/3/mkspecs/linux-g++ -I. -I/opt/Ice-3.1.0/include -I../../../c++/include -I/usr/qt/3/include -o .obj/SysTypes.o ../../../c++/src/Base/SysTypes.cpp In file included from ../../../c++/src/Base/SysTypes.cpp:13: ../../../c++/include/Base/SysTypes.h:122: error: no type `GCCountMap' in ` IceInternal' ../../../c++/include/Base/SysTypes.h:122: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:123: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:124: error: `OnRezPtr' was not declared in this scope ../../../c++/include/Base/SysTypes.h:124: error: syntax error before `)' token ../../../c++/include/Base/SysTypes.h:125: error: `OnRezPtr' was not declared in this scope ../../../c++/include/Base/SysTypes.h:125: error: syntax error before `)' token ../../../c++/include/Base/SysTypes.h:130: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:131: error: type specifier omitted for parameter `OnRezServerPrx' ../../../c++/include/Base/SysTypes.h:131: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:132: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:135: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:136: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:137: error: `OnRezServerPtr' was not declared in this scope ../../../c++/include/Base/SysTypes.h:137: error: syntax error before `)' token ../../../c++/include/Base/SysTypes.h:138: error: `OnRezServerPtr' was not declared in this scope ../../../c++/include/Base/SysTypes.h:138: error: syntax error before `)' token ../../../c++/include/Base/SysTypes.h:153: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:154: error: type specifier omitted for parameter `StringIdMap' ../../../c++/include/Base/SysTypes.h:154: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:159: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:160: error: type specifier omitted for parameter `IdProxyMap' ../../../c++/include/Base/SysTypes.h:160: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:165: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:166: error: type specifier omitted for parameter `StringProxyMap' ../../../c++/include/Base/SysTypes.h:166: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:171: error: type specifier omitted for parameter `__U__Identities' ../../../c++/include/Base/SysTypes.h:172: error: type specifier omitted for parameter `Identities' ../../../c++/include/Base/SysTypes.h:172: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:177: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:178: error: type specifier omitted for parameter `AccesMap' ../../../c++/include/Base/SysTypes.h:178: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:187: error: syntax error before `&' token ../../../c++/include/Base/SysTypes.h:188: error: type specifier omitted for parameter `StringMap' ../../../c++/include/Base/SysTypes.h:188: error: syntax error before `&' token In file included from /opt/Ice-3.1.0/include/Ice/BasicStream.h:16, from ../../../c++/src/Base/SysTypes.cpp:14:
0 -
Hi,
This appears to be a bug in the slice compiler wrt forward declared classes. Until we are able to post a patch you could try modifying your slice, if possible, to include the slice files where OnRez and OnRezServer are declared.
Regards,
Dwayne0 -
Thanks for the bug report! I've posted a patch for this problem in the Patches Forum.
You can just drop the three header files into your Ice for C++ distribution. If you use a source distribution of Ice, there is no need to recompile Ice (despite the new headers).
Cheers,
Michi.0