Archived

This forum has been archived. Please start a new discussion on GitHub.

Ice-3.1 error compiling generated file

xdm
xdm La Coruña, Spain
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
#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

Comments

  • xdm
    xdm La Coruña, Spain
    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:
    
  • dwayne
    dwayne St. John's, Newfoundland
    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,
    Dwayne
  • 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.