Archived
This forum has been archived. Please start a new discussion on GitHub.
Compiler problems with #include
Hello,
I have created an ICE structure in a module which I would like to use for an input and output parameter in an interface. The 'ice2java' compiler told me that the the specific struct does not exist -> 'PositionTime' is not defined
Her is my code:
1. The File with the structure: 'PositionTime.ice'
2. Second code which uses the structure 'PositionTime'
\\File 2: Plain.ice
3. The failure message:
Buildfile: \Diplomarbeit\Java_Workspace\Distributed_Observation_System\build.xml
slice2java:
[slice2java] slice2java --output-dir \Diplomarbeit\Java_Workspace\Distributed_Observation_System\generatedTargets -IC:\Programme\Ice-3.3.0\bin -ID:\Diplomarbeit\Java_Workspace\Distributed_Observation_System\modules\target \Diplomarbeit\Java_Workspace\Distributed_Observation_System\modules\target\Target.ice
[exec] /Diplomarbeit/Java_Workspace/Distributed_Observation_System/modules/target/Target.ice:50: `PositionTime' is not defined
[exec] /Diplomarbeit/Java_Workspace/Distributed_Observation_System/modules/target/Target.ice:52: `PositionTime' is not defined
[exec] /Diplomarbeit/Java_Workspace/Distributed_Observation_System/modules/target/Target.ice:60: `PositionTime' is not defined
BUILD FAILED
\Diplomarbeit\Java_Workspace\Distributed_Observation_System\build.xml:21: exec returned: 1
Total time: 312 milliseconds
These files are in the same directory. Finally when the names of the modules in the 'PositionTime.ice' file are the same as the modules in the file 'Plain.ice" file everythink works fine. But I would like to put the structure in a separate module, because it will be used from several classes.
Thanks,
Maverik888
I have created an ICE structure in a module which I would like to use for an input and output parameter in an interface. The 'ice2java' compiler told me that the the specific struct does not exist -> 'PositionTime' is not defined
Her is my code:
1. The File with the structure: 'PositionTime.ice'
#ifndef POSITION_TIME_ICE #define POSITION_TIME_ICE /// 1. Module: calculators module calculators { module generated { /// 1.1 Struct: PositionTime struct PositionTime { /// pointOfTime long pointOfTime; }; }; }; #endif
2. Second code which uses the structure 'PositionTime'
\\File 2: Plain.ice
#ifndef PLAIN_ICE #define PLAIN_ICE #include <PositionTime.ice> /// 2. File: Plain.ice module plainPackage { module modelPackage { module generated { /// 1.1 Struct: AbsolutePlainPosition struct AbsolutePlainPosition { /// absoluteDistance double absoluteDistance; /// latitude double latitude; /// longitude double longitude; }; interface Plain { idempotent PositionTime getStartTime(); idempotent PositionTime getEndTime(); idempotent AbsolutePlainPosition getCurrentPlainPosition(PositionTime positionTimeValue); }; }; }; }; #endif
3. The failure message:
Buildfile: \Diplomarbeit\Java_Workspace\Distributed_Observation_System\build.xml
slice2java:
[slice2java] slice2java --output-dir \Diplomarbeit\Java_Workspace\Distributed_Observation_System\generatedTargets -IC:\Programme\Ice-3.3.0\bin -ID:\Diplomarbeit\Java_Workspace\Distributed_Observation_System\modules\target \Diplomarbeit\Java_Workspace\Distributed_Observation_System\modules\target\Target.ice
[exec] /Diplomarbeit/Java_Workspace/Distributed_Observation_System/modules/target/Target.ice:50: `PositionTime' is not defined
[exec] /Diplomarbeit/Java_Workspace/Distributed_Observation_System/modules/target/Target.ice:52: `PositionTime' is not defined
[exec] /Diplomarbeit/Java_Workspace/Distributed_Observation_System/modules/target/Target.ice:60: `PositionTime' is not defined
BUILD FAILED
\Diplomarbeit\Java_Workspace\Distributed_Observation_System\build.xml:21: exec returned: 1
Total time: 312 milliseconds
These files are in the same directory. Finally when the names of the modules in the 'PositionTime.ice' file are the same as the modules in the file 'Plain.ice" file everythink works fine. But I would like to put the structure in a separate module, because it will be used from several classes.
Thanks,
Maverik888
0
Comments
-
Since PositionTime is defined in a different module, you must use its fully qualified name, e.g.:
idempotent ::calculators::generated::PositionTime getStartTime();
0 -
Thank you for that hint.
Now my airplanes can speak over the network
Tomorrow, I will create some sensor objects and I hope i can establish my first registry
Thanks,
Maverik8880