Archived

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

Problem compiling Icicle

Hi,

I was trying to compile the Icecle and got the following problem.
The error message from MSVC looks like this:

Build started: Project: generate, Configuration: Debug .NET

Preparing resources...
Updating references...
Performing main compilation...

The project is up-to-date.
Building satellite assemblies...

Build started: Project: Ice, Configuration: Debug .NET

Performing Pre-Build Event...
BuiltinSequences.ice
Communicator.ice
CommunicatorF.ice
[snip]
Project error: A tool returned an error code from the build event

Pre-Build Event failed

It seams like the problem is caused by the icicle\bin\PreBuildEvent.bat which contains the following absolute pathes:
C:\cygwin\home\michi\src\icicle\compileSlice.bat C:\cygwin\home\michi\src\icicle\ Ice

And there is actualy no compileSlice.bat anywhere in distribution. So could somebody please tell me what should be within this bat file or are there any other ways to deal with the problem I have.

Thank you,
Andrey.

Comments

  • mes
    mes California
    Hi Andrey,

    I don't think that bin/PreBuildEvent.bat is actually used. I suspect this may be caused by a PATH problem.

    However, I have just replaced Icicle.zip with a new file that has a simplified directory structure. Please download the updated archive and give it another try.

    Thanks,
    - Mark
  • Hi Mark,

    Thanks for the quick response. Probably I need to mention that I am using MSVC 7.1 (aka 2003). Sorry for being not precise.
    I still get the same problem as before, but now I probably have an idea why it does not work for me - it looks like slice2cs.exe (both in the archive you posted and original one posted by Michi) are compiled with msvc 7.0 and that is why I could not run it (because of lack of correspondng dlls, msvcp70d.dll in particular).
    Are there any chances that you can also provide either static version of slice2cs or the version compiled with msvc 7.1?

    Thanks,
    Andrey.
  • mes
    mes California
    Hi,

    You're right, thanks for bringing this to our attention. We'll fix this problem and post a reply here when the new archive is ready to download.

    - Mark
  • Mea culpa -- unfortunately, the MS IDE makes it all too easy to forget something. Attached is another slice2cs.exe that should do the trick.

    Cheers,

    Michi.
  • Thank you Michi for the update. I'll give it a try soon and let you know the results.

    Thanks,
    Andrey.
  • Hi Michi,

    I still get problems compiling Icecle. I can run the new version of slice2cs you provided but now Visual Studio reports the errors presenetd below when I am trying to build Ice project.

    Thanks,
    Andrey.


    Rebuild All started: Project: generate, Configuration: Debug .NET

    Preparing resources...
    Updating references...
    Performing main compilation...

    Build complete -- 0 errors, 0 warnings
    Building satellite assemblies...



    Rebuild All started: Project: Ice, Configuration: Debug .NET

    Performing Pre-Build Event...
    Preparing resources...
    Updating references...
    Performing main compilation...
    c:\usr\icicle\src\Ice\generated\Locator.cs(968,27): error CS0508: 'Ice.Locator_Disp.ice_ids(Ice.Current)': cannot change return type when overriding inherited member 'Ice.ObjectImpl.ice_ids(Ice.Current)'
    c:\usr\icicle\src\Ice\ObjectImpl.cs(84,27): (Related location)
    c:\usr\icicle\src\Ice\generated\Locator.cs(1091,27): error CS0508: 'Ice.LocatorRegistry_Disp.ice_ids(Ice.Current)': cannot change return type when overriding inherited member 'Ice.ObjectImpl.ice_ids(Ice.Current)'
    c:\usr\icicle\src\Ice\ObjectImpl.cs(84,27): (Related location)
    c:\usr\icicle\src\Ice\generated\Process.cs(266,27): error CS0508: 'Ice.Process_Disp.ice_ids(Ice.Current)': cannot change return type when overriding inherited member 'Ice.ObjectImpl.ice_ids(Ice.Current)'
    c:\usr\icicle\src\Ice\ObjectImpl.cs(84,27): (Related location)
    c:\usr\icicle\src\Ice\generated\Router.cs(466,27): error CS0508: 'Ice.Router_Disp.ice_ids(Ice.Current)': cannot change return type when overriding inherited member 'Ice.ObjectImpl.ice_ids(Ice.Current)'
    c:\usr\icicle\src\Ice\ObjectImpl.cs(84,27): (Related location)

    Build complete -- 4 errors, 0 warnings
    Building satellite assemblies...
    Satellite assemblies could not be built because the main project output is missing.
  • Mea culpa again.

    It looks like the code generator is out of sync with the remainder of the sources. My apologies. Please give a few hours, and I'll put another archive together with a consistent set of sources.

    Michi.
  • OK, you can find Alpha 2 at
    http://www.zeroc.com/download/Icicle/Alpha2/Icicle.zip

    Changes since Alpha1:

    - Changed the generate.cs code to look for slice2cs
    in ${SolutionDir}/bin before looking in $ICE_HOME/bin and $PATH.

    - Added "cs:array" metadata directive for sequences.
    Sequences with this directive are mapped to arrays
    instead of being derived from Collections.CollectionBase.

    - Improved marshaling speed.

    Cheers,

    Michi.
  • Hi Michi,

    Now i can compile it and keen to run some tests :-) . Thanks!
    Just for the record - the problem with adapterDeactivation{COL, S} you mentioned remains also with msvc 7.1. Unfortunately I am not a C# expert and have no idea why it happens.

    Once again thank you for the quick response.
    Andrey.
  • Originally posted by andreynech
    Hi Michi,

    Now i can compile it and keen to run some tests :-) . Thanks!

    Glad to hear it's working for you now!
    Just for the record - the problem with adapterDeactivation{COL, S} you mentioned remains also with msvc 7.1. Unfortunately I am not a C# expert and have no idea why it happens.

    Neither have I :( I tried again today to figure what's happening there, but to no avail. I'm beginning to suspect a bug in Visual C#. If someone can figure out why this is happening and how to fix it, I'd be grateful!

    Cheers,

    Michi.