Re: Problem with Makefile using EiffelStudio

"Germán Arias [email protected] [gobo-eiffel]" <[email protected]> Mon, 18 May 2020 01:51:49 -0600
Newsgroups gmane.comp.lang.eiffel.gobo.general
Message-ID <[email protected]>
--------------3567E1FF8D7DF6603FF6A8B2
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

Thanks for the explanation Alexander, I made the necessary changes to
remove all errors and warnings. Now the problem is when linking. I get
several errors about multiple definitions of the c functions. I suppose
this is because I have defined these functions at the header file
"eiffel-iup.h". There is a way to solve this in the header file? Or I
should move these functions to a new file "eiffel-iup.c"? In this case,
how tell the compiler this new file should be compiled?

With Liberty Eiffel I had "eiffel-iup.h" and "eiffel-iup.c" but this
doesn't worked with GOBO, so I decided to move all to the file
"eiffel-iup.h". I made some test with EiffelStudio to look how add c
files to the project, but I don't found how do this.

Thanks

On 5/17/20 12:46 AM, Alexander Kogtenkov kwaxer-JGs/[email protected] [gobo-eiffel] wrote=
:
>
> It turns out the errors are genuine:
> 1.
> In file included from big_file_C6_c.c:37:
> cd184.c: In function =E2=80=98inline_F184_4944=E2=80=99:
> cd184.c:127:53: error: request for member =E2=80=98arg7=E2=80=99 in somet=
hing not a
> structure or union
> =C2=A0 127 |=C2=A0 cdfCanvasSector (arg1, arg2, arg3, arg4, arg5, arg6. a=
rg7);
> The corresponding Eiffel class library/cd/cd_filled_areas.e, line 689:
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0 "cdfCanvasSector=
 ($wgt, $xc, $yc, $w, $h, $a1. $a2);"
> There is a dot =E2=80=98.=E2=80=99 instead of a comma =E2=80=98,=E2=80=99=
 before the last argument.
> 2.
> In file included from big_file_C6_c.c:40:
> iu197.c: In function =E2=80=98inline_F197_5505=E2=80=99:
> iu197.c:584:31: error: expected =E2=80=98;=E2=80=99 before =E2=80=98:=E2=
=80=99 token
> =C2=A0 584 |=C2=A0 return IupAppend (arg1, arg2):
> The corresponding Eiffel class library/iup.e, line 3454:
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0 "return IupAppen=
d ($control, $new_child):"
> There is a trailing colon =E2=80=98:=E2=80=99 instead of a semicolon. (I =
believe, you
> can omit the trailing semicolon for functions altogether.)
> 3.
> iu197.c: In function =E2=80=98inline_F197_5530=E2=80=99:
> iu197.c:784:15: error: =E2=80=98$wht=E2=80=99 undeclared (first use in th=
is function)
> =C2=A0 784 |=C2=A0 IupSetFloat ($wht, arg2, arg3);
> The corresponding Eiffel class library/iup.e, lines 3627-3632:
> =C2=A0 int_set_float (wgt: POINTER; name: POINTER; value: REAL_32)
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 external
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"C inline use %"=
eiffel-iup.h%""
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 alias
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"IupSetFloat ($w=
ht, $name, $value);"
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 end
> The argument name is `wgt`, but C code uses `wht`.
> 4.
> iu197.c: In function =E2=80=98inline_F197_5559=E2=80=99:
> iu197.c:1016:9: error: void value not ignored as it ought to be
> =C2=A01016 |=C2=A0 return iup_isshift (arg1);
> The corresponding Eiffel class library/iup.e, lines 3834-3839:
> =C2=A0=C2=A0=C2=A0 int_is_shift(status: POINTER): INTEGER
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0external
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"C inline use %"=
eiffel-iup.h%""
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 alias
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"return iup_issh=
ift ($status);"
> =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 end
> The Eiffel type of argument `status` is POINTER. It corresponds to C
> type `void *`. In C, `iup_isshift` is implemented as a macro expecting
> an argument of type `char *`. Therefore, the argument type should be
> cast to the expected one. Also, the macro does not protect arguments
> (you can contact the authors with a request to fix this issue, here is
> a short explanation of the problem:
> https://stackoverflow.com/questions/7186504/c-macros-and-use-of-arguments=
-in-parentheses).
> As a workaround, let=E2=80=99s enclose the argument in parentheses oursel=
ves:
> =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"return iup_issh=
ift (((char *) $status));"
> BTW, the errors you observe indicate that the C compiler found the
> required macro and function declarations that is good news.
> Unlike other compilers, when compiling in workbench mode or in
> finalized mode without dead code removal, EiffelStudio generates code
> for all features, not only for those that are reachable from the root
> creation procedure. As a result, if code compiles for you, it will
> compile for other users even if they use some other features from the
> library, unused in your code.
> Hopefully, you can go through the errors one by one and fix them in
> the sources. Let=E2=80=99s come back to the warnings as well as issues th=
at
> could not be fixed like those described above after this step.
> Alexander Kogtenkov
>
>     Germ=C3=A1n Arias [email protected] [gobo-eiffel]
>     <[email protected]>:
>
>     Hi,
>
>     The current code at repository compiles with GOBO. I will try it
>     on Windows, but not sure what compiler is supposed to be used with
>     the bin package. But I tried some time ago with Liberty Eiffel on
>     Windows 10 and it worked.
>
>     I get errors like:
>
>     In file included from big_file_C6_c.c:37:
>     cd184.c: In function =E2=80=98inline_F184_4944=E2=80=99:
>     cd184.c:127:53: error: request for member =E2=80=98arg7=E2=80=99 in s=
omething not
>     a structure or union
>     =C2=A0 127 |=C2=A0 cdfCanvasSector (arg1, arg2, arg3, arg4, arg5, arg=
6. arg7);
>     | ^
>     cd184.c:127:2: error: too few arguments to function =E2=80=98cdfCanva=
sSector=E2=80=99
>     =C2=A0 127 |=C2=A0 cdfCanvasSector (arg1, arg2, arg3, arg4, arg5, arg=
6. arg7);
>     =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 ^~~~~~~~~~~~~~~
>     In file included from
>     /home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffel-iup.h:36=
,
>     =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 from cd192.c:58,
>     =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0 from big_file_C6_c.c:10:
>
>     In file included from big_file_C6_c.c:40:
>     iu197.c: In function =E2=80=98inline_F197_5505=E2=80=99:
>     iu197.c:584:31: error: expected =E2=80=98;=E2=80=99 before =E2=80=98:=
=E2=80=99 token
>     =C2=A0 584 |=C2=A0 return IupAppend (arg1, arg2):
>     =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^
>     =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ;
>     iu197.c: In function =E2=80=98inline_F197_5530=E2=80=99:
>     iu197.c:784:15: error: =E2=80=98$wht=E2=80=99 undeclared (first use i=
n this function)
>     =C2=A0 784 |=C2=A0 IupSetFloat ($wht, arg2, arg3);
>     =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^~~~
>
>     iu197.c: In function =E2=80=98inline_F197_5559=E2=80=99:
>     iu197.c:1016:9: error: void value not ignored as it ought to be
>     =C2=A01016 |=C2=A0 return iup_isshift (arg1);
>     =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0 ^
>
>     Thanks.
>
>     On 5/16/20 1:08 AM, Alexander Kogtenkov kwaxer-JGs/[email protected]
>     [gobo-eiffel] wrote:
>>
>>     The warning you mention means that for some reason the required
>>     header file was not included. If the updated code still compiles
>>     with Gobo, could you commit your changes so that we can see what
>>     could be wrong?
>>     BTW, does your code work with Gobo on Windows? It might be easier
>>     to check it in this case.
>>     Also, what kind of errors do you get?
>>     Alexander Kogtenkov
>>
>>         Germ=C3=A1n Arias [email protected] [gobo-eiffel]
>>         <[email protected]>:
>>
>>         Thanks, that solve the problem. But now I have other problem.
>>         Eiffel-IUP don't have C++ code, but the library IM (a
>>         dependency of IUP library) have C++ code. The IM
>>         documentation say:
>>
>>         "Even if your application is only in C, you must link with a
>>         C++ capable linker. Using Tecmake set "LINKER :=3D g++" in your
>>         "config.mak" when compiling with gcc (UNIX and Windows)."
>>
>>         With Liberty Eiffel I link with the library "libstdc++" and
>>         this solve the problem. With GOBO this library is
>>         automatically linked (I don't know why). But now seems that
>>         "ec" is compiling it in pure C, even if I add the libstdc++
>>         library. The IM header file have a section:
>>
>>         # =C2=A0 ifdef __cplusplus
>>         =C2=A0 =C2=A0 =C2=A0 =C2=A0 extern "C" {
>>         # =C2=A0 endif
>>         some_declarations_here
>>
>>         # =C2=A0 ifdef __cplusplus
>>         =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
>>         # =C2=A0 endif
>>         I don't know if this section should be compiled, but the
>>         functions inside this section are precisely those mentioned
>>         in the warnings:
>>         warning: implicit declaration of function .....
>>
>>         at the end I get a lot of warnings and errors. I don't have
>>         to much experience with C and none with C++. Any advice?
>>
>>         Thanks
>>
>>         On 5/15/20 1:46 PM, Alexander Kogtenkov kwaxer-JGs/[email protected]
>>         [gobo-eiffel] wrote:
>>>
>>>         To improve efficiency of C compilation, EiffelStudio
>>>         combines code generated for several classes in one large
>>>         compilation unit. Schematically this looks like
>>>         #includes for class A
>>>         code for class A
>>>         #includes for class B
>>>         code for class B
>>>         As a result, if classes refer to the same header file, the
>>>         references may appear in the large compilation unit more
>>>         than once:
>>>         #include "library_x.h"
>>>         code for A
>>>         #include "library_x.h" <--- This causes the problem.
>>>         code for B
>>>         Unfortunately, C compilers do not like when the same
>>>         function/structure/etc. are declared more than once.
>>>         Fortunately, there is a simple workaround. Suppose, C header
>>>         file "library_x.h" looks like
>>>         /* Begin */
>>>         #include "something.h"
>>>         #include "something_else.h"
>>>         some_declarations_here
>>>         /* End */
>>>         Adding include guards in the header file fixes multiple
>>>         inclusion issue:
>>>         /* Begin */
>>>         #ifndef _library_x_h
>>>         # =C2=A0 define _library_x_h
>>>         # =C2=A0 if defined(_MSC_VER) && (_MSC_VER >=3D 1020)
>>>         # =C2=A0 =C2=A0 =C2=A0pragma once
>>>         # =C2=A0 endif
>>>         # =C2=A0=C2=A0include "something.h"
>>>         # =C2=A0 include "something_else.h"
>>>         # =C2=A0 ifdef __cplusplus
>>>         =C2=A0 =C2=A0 =C2=A0 =C2=A0 extern "C" {
>>>         # =C2=A0 endif
>>>         some_declarations_here
>>>
>>>         # =C2=A0 ifdef __cplusplus
>>>         =C2=A0 =C2=A0 =C2=A0 =C2=A0 }
>>>         # =C2=A0 endif
>>>         #endif
>>>         /* End */
>>>         Note that the code above now compiles also with C++ that
>>>         might be needed if some C++ code is involved.
>>>         Alexander Kogtenkov
>>>
>>>             Germ=C3=A1n Arias [email protected] [gobo-eiffel]
>>>             <[email protected]>:
>>>
>>>             No, now I get errors about duplication of C function.
>>>             There is only one C file "eiffel-iup.h" at library
>>>             directory (EIFFEL_IUP variable), but I get:
>>>
>>>             In file included from iu263.c:59,
>>>             =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 from big_file_C8_c.c:53:
>>>             /home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffe=
l-iup.h:1020:6:
>>>             error: redefinition of =E2=80=98connect_callback=E2=80=99
>>>             =C2=A01020 | void connect_callback (Ihandle* ih, const char
>>>             *name, const char *type, int operation) {
>>>             =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | ^~~~~~~~~~~~~~~~
>>>             In file included from iu259.c:47,
>>>             =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 from big_file_C8_c.c:2:
>>>             /home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffe=
l-iup.h:1020:6:
>>>             note: previous definition of =E2=80=98connect_callback=E2=
=80=99 was here
>>>             =C2=A01020 | void connect_callback (Ihandle* ih, const char
>>>             *name, const char *type, int operation) {
>>>             =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 | ^~~~~~~~~~~~~~~~
>>>
>>>             my es-library.ecf is:
>>>
>>>             <?xml version=3D"1.0" encoding=3D"ISO-8859-1"?>
>>>             <system
>>>             =C2=A0=C2=A0=C2=A0
>>>             xmlns=3D"http://www.eiffel.com/developers/xml/configuration=
-1-20-0"
>>>             =C2=A0=C2=A0=C2=A0 xmlns:xsi=3D"http://www.w3.org/2001/XMLS=
chema-instance"
>>>             xsi:schemaLocation=3D"http://www.eiffel.com/developers/xml/=
configuration-1-20-0
>>>             http://www.eiffel.com/developers/xml/configuration-1-20-0.x=
sd"
>>>             name=3D"eiffel-iup"
>>>             library_target=3D"eiffel-iup"
>>>             uuid=3D"3C312C2A-398E-4A0E-B834-1663DF82359F"
>>>             >
>>>
>>>             <description>
>>>             description: "ECF file for the Eiffel-IUP Library"
>>>             library: "Eiffel-IUP Library"
>>>             copyright: "Copyright (c) 2016-2020, German Arias"
>>>             license: "MIT License"
>>>             </description>
>>>
>>>             =C2=A0=C2=A0=C2=A0 <target name=3D"eiffel-iup">
>>>             <root all_classes=3D"true"/>
>>>             <file_rule>
>>>             <exclude>/\.svn$</exclude>
>>>             <exclude>/\.git$</exclude>
>>>             <exclude>/EIFGENs$</exclude>
>>>             </file_rule>
>>>             <option warning=3D"true"/>
>>>             <external_cflag
>>>             value=3D"-I${EIFFEL_IUP}"/>
>>>             <external_library location=3D"${IUP_LIBS}/libiup.so">
>>>             <description>IUP Library</description>
>>>             </external_library>
>>>             <external_library location=3D"${IUP_LIBS}/libiupcd.so">
>>>             <description>IUP Library</description>
>>>             </external_library>
>>>             <external_library location=3D"${IUP_LIBS}/libcd.so">
>>>             <description>IUP Library</description>
>>>             </external_library>
>>>             <external_library location=3D"${IUP_LIBS}/libiupcontrols.so=
">
>>>             <description>IUP Library</description>
>>>             </external_library>
>>>             <external_library location=3D"${IUP_LIBS}/libiupgl.so">
>>>             <description>IUP Library</description>
>>>             </external_library>
>>>             <external_library
>>>             location=3D"${IUP_LIBS}/libiupglcontrols.so">
>>>             <description>IUP Library</description>
>>>             </external_library>
>>>             <external_library location=3D"${IUP_LIBS}/libiupim.so">
>>>             <description>IUP Library</description>
>>>             </external_library>
>>>             <external_library location=3D"${IUP_LIBS}/libim.so">
>>>             <description>IUP Library</description>
>>>             </external_library>
>>>             <external_library location=3D"${IUP_LIBS}/libiupimglib.so">
>>>             <description>IUP Library</description>
>>>             </external_library>
>>>             <external_library
>>>             location=3D"${IUP_LIBS}/libcdcontextplus.so">
>>>             <description>IUP Library</description>
>>>             </external_library>
>>>             <library name=3D"base"
>>>             location=3D"$ISE_LIBRARY/library/base/base.ecf"/>
>>>             <cluster name=3D"eiffel-iup" location=3D"./" recursive=3D"t=
rue">
>>>             </cluster>
>>>             </target>
>>>             </system>
>>>
>>>             Where is the problem?
>>>
>>>             Thanks
>>>
>>>             On 5/15/20 1:11 PM, Alexander Kogtenkov kwaxer-JGs/[email protected]
>>>             [gobo-eiffel] wrote:
>>>>
>>>>             Thank you for the update. Does it mean that the
>>>>             application can now be compiled with EiffelStudio and
>>>>             runs as expected?
>>>>             Regards,
>>>>             Alexander Kogtenkov
>>>>
>>>>                 Germ=C3=A1n Arias [email protected] [gobo-eiffel]
>>>>                 <[email protected]>:
>>>>                 Sorry for the noise. I found the problem. At file
>>>>                 library.ecf of eiffel-iup I include the headers
>>>>                 from GOBO, otherwise it doesn't compile. Removing
>>>>                 this line solves the problem.
>>>>
>>>>                 Regards
>>>>
>>>>                 On 5/15/20 2:19 AM, Germ=C3=A1n Arias germanandre@gmx.=
es
>>>>                 [gobo-eiffel] wrote:
>>>>>
>>>>>                 Hi,
>>>>>
>>>>>                 Not sure if this is an specific problem of
>>>>>                 EiffelStudio or something in
>>>>>                 my ecf files or maybe a bad command line
>>>>>                 arguments. But when I try to
>>>>>                 compile a project with Eiffel Compiler at command
>>>>>                 line using:
>>>>>
>>>>>                 ec -freeze -c_compile -config es-system.ecf
>>>>>
>>>>>                 I get this error:
>>>>>
>>>>>                 [german@localhost example5 (master)]$ ec -freeze
>>>>>                 -c_compile -config
>>>>>                 es-system.ecf
>>>>>                 Eiffel Compilation Manager
>>>>>                 Version 19.05.10.3187 GPL Edition - linux-x86-64
>>>>>
>>>>>                 Degree 6: Examining System
>>>>>                 Degree 5: Parsing Classes
>>>>>                 Degree 4: Analyzing Inheritance
>>>>>                 Degree 3: Checking Types
>>>>>                 Degree 2: Generating Byte Code
>>>>>                 Freezing System Changes
>>>>>                 Degree -1: Generating Code
>>>>>                 System Recompiled.
>>>>>                 Preparing C compilation
>>>>>                 Makefile:2: *** recipe commences before first
>>>>>                 target.=C2=A0 Stop.
>>>>>
>>>>>                 My system is PCLinuxOS with GCC 9.3.0 and GNU Make 4.=
3
>>>>>
>>>>>                 You can test with the code from git repository:
>>>>>
>>>>>                 https://notabug.org/GermanGT/eiffel-iup
>>>>>
>>>>>                 but you should install the IUP libraries and set
>>>>>                 the environment
>>>>>                 variables EIFFEL_IUP to the IUP "library"
>>>>>                 directory and IUP_LIBS to the
>>>>>                 directory with IUP libraries. You should use
>>>>>                 "es-system.ecf" files with
>>>>>                 EiffelStudio compiler.
>>>>>
>>>>>                 Regards
>>>>>
>=20

--------------3567E1FF8D7DF6603FF6A8B2
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/htm=
l4/strict.dtd">
<html>
<head>
</head>






=20
<body style=3D"background-color: #fff;">
<span style=3D"display:none">&nbsp;</span>

<!--~-|**|PrettyHtmlStartT|**|-~-->
<div id=3D"ygrp-mlmsg" style=3D"position:relative;">
  <div id=3D"ygrp-msg" style=3D"z-index: 1;">
<!--~-|**|PrettyHtmlEndT|**|-~-->

    <div id=3D"ygrp-text" >
=20=20=20=20=20=20
=20=20=20=20=20=20
      <p>
=20=20
=20=20
    <p>Thanks for the explanation Alexander, I made the necessary
      changes to remove all errors and warnings. Now the problem is when
      linking. I get several errors about multiple definitions of the c
      functions. I suppose this is because I have defined these
      functions at the header file "eiffel-iup.h". There is a way to
      solve this in the header file? Or I should move these functions to
      a new file "eiffel-iup.c"? In this case, how tell the compiler
      this new file should be compiled? <br>
    </p>
    <p>With Liberty Eiffel I had "eiffel-iup.h" and "eiffel-iup.c" but
      this doesn't worked with GOBO, so I decided to move all to the
      file "eiffel-iup.h". I made some test with EiffelStudio to look
      how add c files to the project, but I don't found how do this.<br>
    </p>
    <p>Thanks<br>
    </p>
    <div class=3D"moz-cite-prefix">On 5/17/20 12:46 AM, Alexander
      Kogtenkov <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:kwaxer=
@mail.ru">kwaxer-JGs/[email protected]</a> [gobo-eiffel] wrote:<br>
    </div>
    <blockquote type=3D"cite" cite=3D"mid:1589698015.37094053-/[email protected]=
u">
=20=20=20=20=20=20
      <span>=C2=A0</span>
=20=20=20=20=20=20
          <div id=3D"ygrp-text">
            <p>
            </p>
            <div>It turns out the errors are genuine:</div>
            <div>=C2=A0</div>
            <div>1.</div>
            <div>=C2=A0</div>
            <div>In file included from big_file_C6_c.c:37:<br>
              cd184.c: In function =E2=80=98inline_F184_4944=E2=80=99:<br>
              cd184.c:127:53: error: request for member =E2=80=98arg7=E2=80=
=99 in
              something not a structure or union<br>
              =C2=A0 127 |=C2=A0 cdfCanvasSector (arg1, arg2, arg3, arg4, a=
rg5,
              arg6. arg7);<br>
              =C2=A0</div>
            <div>The corresponding Eiffel class
              library/cd/cd_filled_areas.e, line 689:</div>
            <div>=C2=A0</div>
            <div>
              <div>=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=
 "cdfCanvasSector ($wgt, $xc, $yc, $w, $h,
                $a1. $a2);"</div>
              <div>=C2=A0</div>
              <div>There is a dot =E2=80=98.=E2=80=99 instead of a comma =
=E2=80=98,=E2=80=99 before the
                last argument.</div>
              <div>=C2=A0</div>
              <div>2.</div>
            </div>
            <div>=C2=A0</div>
            <div>In file included from big_file_C6_c.c:40:<br>
              iu197.c: In function =E2=80=98inline_F197_5505=E2=80=99:<br>
              iu197.c:584:31: error: expected =E2=80=98;=E2=80=99 before =
=E2=80=98:=E2=80=99 token<br>
              =C2=A0 584 |=C2=A0 return IupAppend (arg1, arg2):<br>
              =C2=A0</div>
            <div>
              <div>The corresponding Eiffel class library/iup.e, line
                3454:</div>
              <div>=C2=A0</div>
              <div>
                <div>=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0=C2=
=A0 "return IupAppend ($control,
                  $new_child):"</div>
                <div>=C2=A0</div>
                <div>There is a trailing colon =E2=80=98:=E2=80=99 instead =
of a
                  semicolon. (I believe, you can omit the trailing
                  semicolon for functions altogether.)</div>
              </div>
            </div>
            <div>=C2=A0</div>
            <div>3.</div>
            <div>=C2=A0</div>
            <div>iu197.c: In function =E2=80=98inline_F197_5530=E2=80=99:<b=
r>
              iu197.c:784:15: error: =E2=80=98$wht=E2=80=99 undeclared (fir=
st use in
              this function)<br>
              =C2=A0 784 |=C2=A0 IupSetFloat ($wht, arg2, arg3);</div>
            <div>=C2=A0</div>
            <div>
              <div>The corresponding Eiffel class library/iup.e, lines
                3627-3632:</div>
              <div>=C2=A0</div>
              <div>
                <div>=C2=A0 int_set_float (wgt: POINTER; name: POINTER;
                  value: REAL_32)<br>
                  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 external<br>
                  =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=
"C inline use %"eiffel-iup.h%""<br>
                  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 alias<br>
                  =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=
"IupSetFloat ($wht, $name, $value);"<br>
                  =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 end</div>
                <div>=C2=A0</div>
                <div>The argument name is `wgt`, but C code uses `wht`.</di=
v>
              </div>
              <div>=C2=A0</div>
              <div>4.</div>
              <div>=C2=A0</div>
              <div>iu197.c: In function =E2=80=98inline_F197_5559=E2=80=99:=
<br>
                iu197.c:1016:9: error: void value not ignored as it
                ought to be<br>
                =C2=A01016 |=C2=A0 return iup_isshift (arg1);<br>
                =C2=A0</div>
            </div>
            <div>
              <div>The corresponding Eiffel class library/iup.e, lines
                3834-3839:</div>
            </div>
            <div>
              <div>=C2=A0=C2=A0=C2=A0 int_is_shift(status: POINTER): INTEGE=
R<br>
                =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0external<br>
                =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"C=
 inline use %"eiffel-iup.h%""<br>
                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 alias<br>
                =C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0"r=
eturn iup_isshift ($status);"<br>
                =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 end</div>
              <div>=C2=A0</div>
              <div>The Eiffel type of argument `status` is POINTER. It
                corresponds to C type `void *`. In C, `iup_isshift` is
                implemented as a macro expecting an argument of type
                `char *`. Therefore, the argument type should be cast to
                the expected one. Also, the macro does not protect
                arguments (you can contact the authors with a request to
                fix this issue, here is a short explanation of the
                problem: <a href=3D"https://stackoverflow.com/questions/718=
6504/c-macros-and-use-of-arguments-in-parentheses" moz=3D"true">https://sta=
ckoverflow.com/questions/7186504/c-macros-and-use-of-arguments-in-parenthes=
es</a>).
                As a workaround, let=E2=80=99s enclose the argument in
                parentheses ourselves:</div>
              <div>=C2=A0</div>
              <div>=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0 =C2=
=A0"return iup_isshift (((char *)
                $status));"</div>
              <div>=C2=A0</div>
              <div>=C2=A0</div>
              <div>BTW, the errors you observe indicate that the C
                compiler found the required macro and function
                declarations that is good news.</div>
              <div>=C2=A0</div>
              <div>Unlike other compilers, when compiling in workbench
                mode or in finalized mode without dead code removal,
                EiffelStudio generates code for all features, not only
                for those that are reachable from the root creation
                procedure. As a result, if code compiles for you, it
                will compile for other users even if they use some other
                features from the library, unused in your code.</div>
              <div>=C2=A0</div>
              <div>Hopefully, you can go through the errors one by one
                and fix them in the sources. Let=E2=80=99s come back to the
                warnings as well as issues that could not be fixed like
                those described above after this step.</div>
              <div>=C2=A0</div>
            </div>
            <div data=3D"container">
              <div data=3D"content">
                <div>
                  <div>Alexander Kogtenkov</div>
                </div>
              </div>
            </div>
            <div>=C2=A0</div>
            <div>=C2=A0</div>
            <blockquote style=3D"border-left:1px solid
              #0857A6;margin:10px;padding:0 0 0 10px;">Germ=C3=A1n Arias
              <a class=3D"moz-txt-link-abbreviated" href=3D"mailto:germanan=
[email protected]">[email protected]</a> [gobo-eiffel]
              <a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:gobo-eiffel=
@yahoogroups.com">&lt;[email protected]&gt;</a>:<br>
              =C2=A0
              <div id>
                <div class=3D"js-helper js-readmsg-msg">
                  <div>
                    <div id=3D"style_15896842130777841810_BODY">
                      <div class=3D"class_1589697332"><br>
                        =C2=A0
                        <p>Hi,</p>
                        <p>The current code at repository compiles with
                          GOBO. I will try it on Windows, but not sure
                          what compiler is supposed to be used with the
                          bin package. But I tried some time ago with
                          Liberty Eiffel on Windows 10 and it worked.</p>
                        <p>I get errors like:</p>
                        <p>=C2=A0</p>
                        <p>In file included from big_file_C6_c.c:37:<br>
                          cd184.c: In function =E2=80=98inline_F184_4944=E2=
=80=99:<br>
                          cd184.c:127:53: error: request for member
                          =E2=80=98arg7=E2=80=99 in something not a structu=
re or union<br>
                          =C2=A0 127 |=C2=A0 cdfCanvasSector (arg1, arg2, a=
rg3,
                          arg4, arg5, arg6. arg7);<br>
                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                          |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                          ^<br>
                          cd184.c:127:2: error: too few arguments to
                          function =E2=80=98cdfCanvasSector=E2=80=99<br>
                          =C2=A0 127 |=C2=A0 cdfCanvasSector (arg1, arg2, a=
rg3,
                          arg4, arg5, arg6. arg7);<br>
                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0 ^~~~~~~~~~=
~~~~~<br>
                          In file included from
                          /home/german/Desarrollo/eiffel-dev/eiffel-iup/lib=
rary/eiffel-iup.h:36,<br>
                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 from cd192.c:58,<br>
                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 from big_file_C6_c.c:10:</=
p>
                        <p>=C2=A0</p>
                        <p>In file included from big_file_C6_c.c:40:<br>
                          iu197.c: In function =E2=80=98inline_F197_5505=E2=
=80=99:<br>
                          iu197.c:584:31: error: expected =E2=80=98;=E2=80=
=99 before =E2=80=98:=E2=80=99
                          token<br>
                          =C2=A0 584 |=C2=A0 return IupAppend (arg1, arg2):=
<br>
                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ^<br>
                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 ;<br>
                          iu197.c: In function =E2=80=98inline_F197_5530=E2=
=80=99:<br>
                          iu197.c:784:15: error: =E2=80=98$wht=E2=80=99 und=
eclared
                          (first use in this function)<br>
                          =C2=A0 784 |=C2=A0 IupSetFloat ($wht, arg2, arg3)=
;<br>
                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^~~~<=
br>
                          =C2=A0</p>
                        <p>iu197.c: In function =E2=80=98inline_F197_5559=
=E2=80=99:<br>
                          iu197.c:1016:9: error: void value not ignored
                          as it ought to be<br>
                          =C2=A01016 |=C2=A0 return iup_isshift (arg1);<br>
                          =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ^<br>
                          =C2=A0</p>
                        <p>Thanks.</p>
                        <p>=C2=A0</p>
                        <div class=3D"moz-cite-prefix_mailru_css_attribute_=
postfix">On
                          5/16/20 1:08 AM, Alexander Kogtenkov <a class=3D"=
moz-txt-link-abbreviated_mailru_css_attribute_postfix" href=3D"//e.mail.ru/=
compose/?mailto=3Dmailto%3akwaxer-JGs/[email protected]" rel=3D"noopener
                            noreferrer" moz=3D"true">kwaxer-JGs/[email protected]</a>
                          [gobo-eiffel] wrote:</div>
                        <blockquote type=3D"cite"><span>=C2=A0</span>
                          <div id=3D"ygrp-text_mailru_css_attribute_postfix=
">
                            <p>=C2=A0</p>
                            <div>The warning you mention means that for
                              some reason the required header file was
                              not included. If the updated code still
                              compiles with Gobo, could you commit your
                              changes so that we can see what could be
                              wrong?</div>
                            <div>=C2=A0</div>
                            <div>BTW, does your code work with Gobo on
                              Windows? It might be easier to check it in
                              this case.</div>
                            <div>=C2=A0</div>
                            <div>Also, what kind of errors do you get?</div=
>
                            <div>=C2=A0</div>
                            <div>
                              <div>
                                <div>
                                  <div>Alexander Kogtenkov</div>
                                </div>
                              </div>
                            </div>
                            <div>=C2=A0</div>
                            <div>=C2=A0</div>
                            <blockquote style=3D"border-left:1px solid
                              #0857A6;margin:10px;padding:0 0 0 10px;">Germ=
=C3=A1n
                              Arias <a class=3D"moz-txt-link-abbreviated_ma=
ilru_css_attribute_postfix" href=3D"//e.mail.ru/compose/?mailto=3Dmailto%3a=
[email protected]" rel=3D"noopener noreferrer" moz=3D"true">germanandre@gm=
x.es</a>
                              [gobo-eiffel] <a class=3D"moz-txt-link-rfc239=
6E_mailru_css_attribute_postfix" href=3D"//e.mail.ru/compose/?mailto=3Dmail=
to%3agobo%[email protected]" rel=3D"noopener noreferrer" moz=3D"true=
">&lt;[email protected]&gt;</a>:<br>
                              =C2=A0
                              <div id>
                                <div class=3D"js-helper_mailru_css_attribut=
e_postfix
js-readmsg-msg_mailru_css_attribute_postfix">
                                  <div>
                                    <div id=3D"style_15896082770181005214_B=
ODY_mailru_css_attribute_postfix">
                                      <div class=3D"class_1589616296_mailru=
_css_attribute_postfix">=C2=A0
                                        <p>Thanks, that solve the
                                          problem. But now I have other
                                          problem. Eiffel-IUP don't have
                                          C&#43;+ code, but the library IM
                                          (a dependency of IUP library)
                                          have C&#43;+ code. The IM
                                          documentation say:</p>
                                        <p>"Even if your application is
                                          only in C, you must link with
                                          a C&#43;+ capable linker. Using
                                          Tecmake set "LINKER :=3D g&#43;+"=
 in
                                          your "config.mak" when
                                          compiling with gcc (UNIX and
                                          Windows)."</p>
                                        <p>=C2=A0</p>
                                        <p>With Liberty Eiffel I link
                                          with the library "libstdc&#43;+"
                                          and this solve the problem.
                                          With GOBO this library is
                                          automatically linked (I don't
                                          know why). But now seems that
                                          "ec" is compiling it in pure
                                          C, even if I add the libstdc&#43;=
+
                                          library. The IM header file
                                          have a section:</p>
                                        <div># =C2=A0 ifdef __cplusplus<br>
                                          =C2=A0 =C2=A0 =C2=A0 =C2=A0 exter=
n "C" {<br>
                                          # =C2=A0 endif</div>
                                        <div>=C2=A0</div>
                                        <div>=C2=A0 =C2=A0 =C2=A0 =C2=A0
                                          some_declarations_here</div>
                                        <div><br>
                                          # =C2=A0 ifdef __cplusplus<br>
                                          =C2=A0 =C2=A0 =C2=A0 =C2=A0 }<br>
                                          # =C2=A0 endif</div>
                                        <div>=C2=A0</div>
                                        <div>I don't know if this
                                          section should be compiled,
                                          but the functions inside this
                                          section are precisely those
                                          mentioned in the warnings:</div>
                                        <div>=C2=A0</div>
                                        <div>warning: implicit
                                          declaration of function .....</di=
v>
                                        <p>at the end I get a lot of
                                          warnings and errors. I don't
                                          have to much experience with C
                                          and none with C&#43;+. Any advice=
?</p>
                                        <p>Thanks</p>
                                        <p>=C2=A0</p>
                                        <div class=3D"moz-cite-prefix_mailr=
u_css_attribute_postfix_mailru_css_attribute_postfix">On
                                          5/15/20 1:46 PM, Alexander
                                          Kogtenkov <a class=3D"moz-txt-lin=
k-abbreviated_mailru_css_attribute_postfix_mailru_css_attribute_postfix" hr=
ef=3D"http://e.mail.ru/compose/?mailto=3Dmailto%3akwaxer-JGs/[email protected]" rel=3D"no=
opener noreferrer" target=3D"_blank" moz=3D"true">kwaxer-JGs/[email protected]</a>
                                          [gobo-eiffel] wrote:</div>
                                        <blockquote type=3D"cite"><span>=C2=
=A0</span>
                                          <div id=3D"ygrp-text_mailru_css_a=
ttribute_postfix_mailru_css_attribute_postfix">
                                            <p>=C2=A0</p>
                                            <div>To improve efficiency
                                              of C compilation,
                                              EiffelStudio combines code
                                              generated for several
                                              classes in one large
                                              compilation unit.
                                              Schematically this looks
                                              like</div>
                                            <div>
                                              <div>=C2=A0</div>
                                              <div>#includes for class A</d=
iv>
                                              <div>code for class A</div>
                                              <div>#includes for class B</d=
iv>
                                              <div>code for class B</div>
                                            </div>
                                            <div>=C2=A0</div>
                                            <div>As a result, if classes
                                              refer to the same header
                                              file, the references may
                                              appear in the large
                                              compilation unit more than
                                              once:</div>
                                            <div>=C2=A0</div>
                                            <div>#include "library_x.h"</di=
v>
                                            <div>code for A<br>
                                              #include "library_x.h"
                                              &lt;--- This causes the
                                              problem.</div>
                                            <div>code for B<br>
                                              =C2=A0</div>
                                            <div>Unfortunately, C
                                              compilers do not like when
                                              the same
                                              function/structure/etc.
                                              are declared more than
                                              once. Fortunately, there
                                              is a simple workaround.
                                              Suppose, C header file
                                              "library_x.h" looks like</div=
>
                                            <div>=C2=A0</div>
                                            <div>/* Begin */</div>
                                            <div>#include "something.h"
                                              <div>#include
                                                "something_else.h"</div>
                                              <div>=C2=A0</div>
                                              <div>some_declarations_here</=
div>
                                              <div>/* End */</div>
                                              =C2=A0
                                              <div>Adding include guards
                                                in the header file fixes
                                                multiple inclusion
                                                issue:</div>
                                              <div>=C2=A0</div>
                                              <div>/* Begin */</div>
                                              <div>
                                                <div>#ifndef
                                                  _library_x_h<br>
                                                  # =C2=A0 define
                                                  _library_x_h<br>
                                                  # =C2=A0 if
                                                  defined(_MSC_VER)
                                                  &amp;&amp; (_MSC_VER
                                                  &gt;=3D 1020)<br>
                                                  # =C2=A0 =C2=A0 =C2=A0pra=
gma once<br>
                                                  # =C2=A0 endif</div>
                                                <div>
                                                  <div>=C2=A0</div>
                                                  <div># =C2=A0=C2=A0includ=
e
                                                    "something.h"</div>
                                                  <div># =C2=A0 include
                                                    "something_else.h"</div=
>
                                                </div>
                                                <div>=C2=A0</div>
                                                <div># =C2=A0 ifdef
                                                  __cplusplus<br>
                                                  =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 extern "C" {<br>
                                                  # =C2=A0 endif</div>
                                                <div>=C2=A0</div>
                                                <div>
                                                  <div>=C2=A0 =C2=A0 =C2=A0=
 =C2=A0
                                                    some_declarations_here<=
/div>
                                                  <div>
                                                    <div><br>
                                                      # =C2=A0 ifdef
                                                      __cplusplus<br>
                                                      =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 }<br>
                                                      # =C2=A0 endif</div>
                                                    <div>#endif</div>
                                                    <div>/* End */</div>
                                                    <div>=C2=A0</div>
                                                    <div>Note that the
                                                      code above now
                                                      compiles also with
                                                      C&#43;+ that might be
                                                      needed if some C&#43;=
+
                                                      code is involved.</di=
v>
                                                  </div>
                                                </div>
                                              </div>
                                              <div>=C2=A0</div>
                                              <div>
                                                <div>
                                                  <div>
                                                    <div>Alexander
                                                      Kogtenkov</div>
                                                  </div>
                                                </div>
                                              </div>
                                              <div>=C2=A0</div>
                                              <div>=C2=A0</div>
                                              <blockquote style=3D"border-l=
eft:1px
                                                solid
                                                #0857A6;margin:10px;padding=
:0
                                                0 0 10px;">Germ=C3=A1n Aria=
s
                                                <a class=3D"moz-txt-link-ab=
breviated_mailru_css_attribute_postfix_mailru_css_attribute_postfix" href=
=3D"http://e.mail.ru/compose/?mailto=3Dmailto%[email protected]" rel=3D"=
noopener
                                                  noreferrer" target=3D"_bl=
ank" moz=3D"true">[email protected]</a>
                                                [gobo-eiffel] <a class=3D"m=
oz-txt-link-rfc2396E_mailru_css_attribute_postfix_mailru_css_attribute_post=
fix" href=3D"http://e.mail.ru/compose/?mailto=3Dmailto%3agobo%2deiffel@yaho=
ogroups.com" rel=3D"noopener
                                                  noreferrer" target=3D"_bl=
ank" moz=3D"true">&lt;[email protected]&gt;</a>:<br>
                                                =C2=A0
                                                <div id>
                                                  <div class=3D"js-helper_m=
ailru_css_attribute_postfix_mailru_css_attribute_postfix
js-readmsg-msg_mailru_css_attribute_postfix_mailru_css_attribute_postfix">
                                                    <div>
                                                      <div id=3D"style_1589=
5705160941543087_BODY_mailru_css_attribute_postfix_mailru_css_attribute_pos=
tfix">
                                                        <div class=3D"class=
_1589601901_mailru_css_attribute_postfix_mailru_css_attribute_postfix">=C2=
=A0
                                                          <p>No, now I
                                                          get errors
                                                          about
                                                          duplication of
                                                          C function.
                                                          There is only
                                                          one C file
                                                          "eiffel-iup.h"
                                                          at library
                                                          directory
                                                          (EIFFEL_IUP
                                                          variable), but
                                                          I get:</p>
                                                          <p>=C2=A0</p>
                                                          In file
                                                          included from
                                                          iu263.c:59,<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 from big_file_C8_c.c:53:<br>
/home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffel-iup.h:1020:6:
                                                          error:
                                                          redefinition
                                                          of
                                                          =E2=80=98connect_=
callback=E2=80=99<br>
                                                          =C2=A01020 | void
                                                          connect_callback
                                                          (Ihandle* ih,
                                                          const char
                                                          *name, const
                                                          char *type,
                                                          int operation)
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                          ^~~~~~~~~~~~~~~~<=
br>
                                                          In file
                                                          included from
                                                          iu259.c:47,<br>
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0=C2=A0 from big_file_C8_c.c:2:<br>
/home/german/Desarrollo/eiffel-dev/eiffel-iup/library/eiffel-iup.h:1020:6:
                                                          note: previous
                                                          definition of
=E2=80=98connect_callback=E2=80=99 was here<br>
                                                          =C2=A01020 | void
                                                          connect_callback
                                                          (Ihandle* ih,
                                                          const char
                                                          *name, const
                                                          char *type,
                                                          int operation)
                                                          {<br>
                                                          =C2=A0=C2=A0=C2=
=A0=C2=A0=C2=A0 |=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0
                                                          ^~~~~~~~~~~~~~~~
                                                          <p>=C2=A0</p>
                                                          <p>my
                                                          es-library.ecf
                                                          is:</p>
                                                          <p>=C2=A0</p>
                                                          <p>&lt;?xml
                                                          version=3D"1.0"
encoding=3D"ISO-8859-1"?&gt;<br>
                                                          &lt;system<br>
                                                          =C2=A0=C2=A0=C2=
=A0 xmlns=3D<a class=3D"moz-txt-link-rfc2396E_mailru_css_attribute_postfix_=
mailru_css_attribute_postfix_mailru_css_attribute_postfix" href=3D"http://w=
ww.eiffel.com/developers/xml/configuration-1-20-0" rel=3D"noopener
                                                          noreferrer" targe=
t=3D"_blank" moz=3D"true">"http://www.eiffel.com/developers/xml/configurati=
on-1-20-0"</a><br>
                                                          =C2=A0=C2=A0=C2=
=A0 xmlns:xsi=3D<a class=3D"moz-txt-link-rfc2396E_mailru_css_attribute_post=
fix_mailru_css_attribute_postfix_mailru_css_attribute_postfix" href=3D"http=
://www.w3.org/2001/XMLSchema-instance" rel=3D"noopener
                                                          noreferrer" targe=
t=3D"_blank" moz=3D"true">"http://www.w3.org/2001/XMLSchema-instance"</a><b=
r>
                                                          =C2=A0=C2=A0=C2=
=A0
                                                          xsi:schemaLocatio=
n=3D<a class=3D"moz-txt-link-rfc2396E_mailru_css_attribute_postfix_mailru_c=
ss_attribute_postfix_mailru_css_attribute_postfix" href=3D"http://www.eiffe=
l.com/developers/xml/configuration-1-20-0http://www...eiffel.com/developers=
/xml/configuration-1-20-0.xsd" rel=3D"noopener
                                                          noreferrer" targe=
t=3D"_blank" moz=3D"true">"http://www.eiffel.com/developers/xml/configurati=
on-1-20-0
http://www.eiffel.com/developers/xml/configuration-1-20-0.xsd"</a><br>
                                                          =C2=A0=C2=A0=C2=
=A0
                                                          name=3D"eiffel-iu=
p"<br>
                                                          =C2=A0=C2=A0=C2=
=A0
                                                          library_target=3D=
"eiffel-iup"<br>
                                                          =C2=A0=C2=A0=C2=
=A0
                                                          uuid=3D"3C312C2A-=
398E-4A0E-B834-1663DF82359F"<br>
                                                          &gt;<br>
                                                          <br>
                                                          =C2=A0=C2=A0=C2=
=A0
                                                          &lt;description&g=
t;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          description:
                                                          "ECF file for
                                                          the Eiffel-IUP
                                                          Library"<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          library:
                                                          "Eiffel-IUP
                                                          Library"<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          copyright:
                                                          "Copyright (c)
                                                          2016-2020,
                                                          German Arias"<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          license: "MIT
                                                          License"<br>
                                                          =C2=A0=C2=A0=C2=
=A0
                                                          &lt;/description&=
gt;<br>
                                                          <br>
                                                          =C2=A0=C2=A0=C2=
=A0 &lt;target
name=3D"eiffel-iup"&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;root
                                                          all_classes=3D"tr=
ue"/&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;file_rule&gt;=
<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;exclude&gt;/\=
..svn$&lt;/exclude&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;exclude&gt;/\=
..git$&lt;/exclude&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;exclude&gt;/E=
IFGENs$&lt;/exclude&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;/file_rule&gt=
;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;option
                                                          warning=3D"true"/=
&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;external_cfla=
g<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          value=3D"-I${EIFF=
EL_IUP}"/&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;external_libr=
ary
location=3D"${IUP_LIBS}/libiup.so"&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;description&g=
t;IUP
Library&lt;/description&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;/external_lib=
rary&gt;=C2=A0=C2=A0=C2=A0
                                                          =C2=A0=C2=A0=C2=
=A0<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;external_libr=
ary
location=3D"${IUP_LIBS}/libiupcd.so"&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;description&g=
t;IUP
Library&lt;/description&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;/external_lib=
rary&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;external_libr=
ary
location=3D"${IUP_LIBS}/libcd.so"&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;description&g=
t;IUP
Library&lt;/description&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;/external_lib=
rary&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;external_libr=
ary
location=3D"${IUP_LIBS}/libiupcontrols.so"&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;description&g=
t;IUP
Library&lt;/description&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;/external_lib=
rary&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;external_libr=
ary
location=3D"${IUP_LIBS}/libiupgl.so"&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;description&g=
t;IUP
Library&lt;/description&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;/external_lib=
rary&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;external_libr=
ary
location=3D"${IUP_LIBS}/libiupglcontrols.so"&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;description&g=
t;IUP
Library&lt;/description&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;/external_lib=
rary&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;external_libr=
ary
location=3D"${IUP_LIBS}/libiupim.so"&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;description&g=
t;IUP
Library&lt;/description&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;/external_lib=
rary&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;external_libr=
ary
location=3D"${IUP_LIBS}/libim.so"&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;description&g=
t;IUP
Library&lt;/description&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;/external_lib=
rary&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;external_libr=
ary
location=3D"${IUP_LIBS}/libiupimglib.so"&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;description&g=
t;IUP
Library&lt;/description&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;/external_lib=
rary&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;external_libr=
ary
location=3D"${IUP_LIBS}/libcdcontextplus.so"&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;description&g=
t;IUP
Library&lt;/description&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;/external_lib=
rary&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;library
                                                          name=3D"base"
                                                          location=3D"$ISE_=
LIBRARY/library/base/base.ecf"/&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;cluster
                                                          name=3D"eiffel-iu=
p"
                                                          location=3D"./"
recursive=3D"true"&gt;<br>
                                                          =C2=A0=C2=A0=C2=
=A0 =C2=A0=C2=A0=C2=A0
                                                          &lt;/cluster&gt;<=
br>
                                                          =C2=A0=C2=A0=C2=
=A0
                                                          &lt;/target&gt;<b=
r>
&lt;/system&gt;</p>
                                                          <p>=C2=A0</p>
                                                          <p>Where is
                                                          the problem?</p>
                                                          <p>Thanks</p>
                                                          <p>=C2=A0</p>
                                                          <div class=3D"moz=
-cite-prefix_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mail=
ru_css_attribute_postfix">On
                                                          5/15/20 1:11
                                                          PM, Alexander
                                                          Kogtenkov <a clas=
s=3D"moz-txt-link-abbreviated_mailru_css_attribute_postfix_mailru_css_attri=
bute_postfix_mailru_css_attribute_postfix" href=3D"http://e.mail.ru/compose=
/?mailto=3Dmailto%3akwaxer-JGs/[email protected]" rel=3D"noopener
                                                          noreferrer" targe=
t=3D"_blank" moz=3D"true">kwaxer-JGs/[email protected]</a> [gobo-eiffel] wrote:</div>
                                                          <blockquote type=
=3D"cite"> <span>=C2=A0</span>
                                                          <div id=3D"ygrp-t=
ext_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mailru_css_at=
tribute_postfix">
                                                          <p>=C2=A0</p>
                                                          <div>Thank you
                                                          for the
                                                          update. Does
                                                          it mean that
                                                          the
                                                          application
                                                          can now be
                                                          compiled with
                                                          EiffelStudio
                                                          and runs as
                                                          expected?</div>
                                                          <div>=C2=A0</div>
                                                          <div>Regards,</di=
v>
                                                          <div>
                                                          <div>
                                                          <div>
                                                          <div>Alexander
                                                          Kogtenkov</div>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          <div>=C2=A0</div>
                                                          <div>=C2=A0</div>
                                                          <blockquote style=
=3D"border-left:1px
                                                          solid
                                                          #0857A6;margin:10=
px;padding:0
                                                          0 0 10px;">Germ=
=C3=A1n
                                                          Arias <a class=3D=
"moz-txt-link-abbreviated_mailru_css_attribute_postfix_mailru_css_attribute=
_postfix_mailru_css_attribute_postfix" href=3D"http://e.mail.ru/compose/?ma=
ilto=3Dmailto%[email protected]" rel=3D"noopener
                                                          noreferrer" targe=
t=3D"_blank" moz=3D"true">[email protected]</a> [gobo-eiffel] <a class=3D"=
moz-txt-link-rfc2396E_mailru_css_attribute_postfix_mailru_css_attribute_pos=
tfix_mailru_css_attribute_postfix" href=3D"http://e.mail.ru/compose/?mailto=
=3Dmailto%3agobo%[email protected]" rel=3D"noopener
                                                          noreferrer" targe=
t=3D"_blank" moz=3D"true">&lt;[email protected]&gt;</a>:<br>
                                                          =C2=A0
                                                          <div id>
                                                          <div class=3D"js-=
helper_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mailru_css=
_attribute_postfix
js-readmsg-msg_mailru_css_attribute_postfix_mailru_css_attribute_postfix_ma=
ilru_css_attribute_postfix">
                                                          <div>
                                                          <div id=3D"style_=
15895686471961104927_BODY_mailru_css_attribute_postfix_mailru_css_attribute=
_postfix_mailru_css_attribute_postfix">
                                                          <div class=3D"cla=
ss_1589593025_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mai=
lru_css_attribute_postfix">Sorry
                                                          for the noise.
                                                          I found the
                                                          problem. At
                                                          file
                                                          library.ecf of
                                                          eiffel-iup I
                                                          include the
                                                          headers from
                                                          GOBO,
                                                          otherwise it
                                                          doesn't
                                                          compile.
                                                          Removing this
                                                          line solves
                                                          the problem.
                                                          <p>Regards</p>
                                                          <div class=3D"moz=
-cite-prefix_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mail=
ru_css_attribute_postfix_mailru_css_attribute_postfix">On
                                                          5/15/20 2:19
                                                          AM, Germ=C3=A1n
                                                          Arias <a class=3D=
"moz-txt-link-abbreviated_mailru_css_attribute_postfix_mailru_css_attribute=
_postfix_mailru_css_attribute_postfix_mailru_css_attribute_postfix" href=3D=
"http://e.mail.ru/compose/?mailto=3Dmailto%[email protected]" rel=3D"noo=
pener
                                                          noreferrer" targe=
t=3D"_blank" moz=3D"true">[email protected]</a> [gobo-eiffel] wrote:</div>
                                                          <blockquote type=
=3D"cite"><span>=C2=A0</span>
                                                          <div id=3D"ygrp-t=
ext_mailru_css_attribute_postfix_mailru_css_attribute_postfix_mailru_css_at=
tribute_postfix_mailru_css_attribute_postfix">
                                                          <p>Hi,<br>
                                                          <br>
                                                          Not sure if
                                                          this is an
                                                          specific
                                                          problem of
                                                          EiffelStudio
                                                          or something
                                                          in<br>
                                                          my ecf files
                                                          or maybe a bad
                                                          command line
                                                          arguments. But
                                                          when I try to<br>
                                                          compile a
                                                          project with
                                                          Eiffel
                                                          Compiler at
                                                          command line
                                                          using:<br>
                                                          <br>
                                                          ec -freeze
                                                          -c_compile
                                                          -config
                                                          es-system.ecf<br>
                                                          <br>
                                                          I get this
                                                          error:<br>
                                                          <br>
[german@localhost example5 (master)]$ ec -freeze -c_compile -config<br>
                                                          es-system.ecf<br>
                                                          Eiffel
                                                          Compilation
                                                          Manager<br>
                                                          Version
                                                          19.05.10.3187
                                                          GPL Edition -
                                                          linux-x86-64<br>
                                                          <br>
                                                          Degree 6:
                                                          Examining
                                                          System<br>
                                                          Degree 5:
                                                          Parsing
                                                          Classes<br>
                                                          Degree 4:
                                                          Analyzing
                                                          Inheritance<br>
                                                          Degree 3:
                                                          Checking Types<br=
>
                                                          Degree 2:
                                                          Generating
                                                          Byte Code<br>
                                                          Freezing
                                                          System Changes<br=
>
                                                          Degree -1:
                                                          Generating
                                                          Code<br>
                                                          System
                                                          Recompiled.<br>
                                                          Preparing C
                                                          compilation<br>
                                                          Makefile:2:
                                                          *** recipe
                                                          commences
                                                          before first
                                                          target.=C2=A0 Sto=
p.<br>
                                                          <br>
                                                          My system is
                                                          PCLinuxOS with
                                                          GCC 9.3.0 and
                                                          GNU Make 4.3<br>
                                                          <br>
                                                          You can test
                                                          with the code
                                                          from git
                                                          repository:<br>
                                                          <br>
                                                          <a class=3D"moz-t=
xt-link-freetext_mailru_css_attribute_postfix_mailru_css_attribute_postfix_=
mailru_css_attribute_postfix_mailru_css_attribute_postfix" href=3D"https://=
notabug.org/GermanGT/eiffel-iup" rel=3D"noopener noreferrer" target=3D"_bla=
nk" moz=3D"true">https://notabug.org/GermanGT/eiffel-iup</a><br>
                                                          <br>
                                                          but you should
                                                          install the
                                                          IUP libraries
                                                          and set the
                                                          environment<br>
                                                          variables
                                                          EIFFEL_IUP to
                                                          the IUP
                                                          "library"
                                                          directory and
                                                          IUP_LIBS to
                                                          the<br>
                                                          directory with
                                                          IUP libraries.
                                                          You should use
"es-system.ecf" files with<br>
                                                          EiffelStudio
                                                          compiler.<br>
                                                          <br>
                                                          Regards<br>
                                                          =C2=A0</p>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </div>
                                                          </blockquote>
                                                          </div>
                                                          </blockquote>
                                                        </div>
                                                      </div>
                                                    </div>
                                                  </div>
                                                </div>
                                              </blockquote>
                                            </div>
                                          </div>
                                        </blockquote>
                                      </div>
                                    </div>
                                  </div>
                                </div>
                              </div>
                            </blockquote>
                            <div>=C2=A0</div>
                          </div>
                        </blockquote>
                        =C2=A0</div>
                    </div>
                  </div>
                </div>
              </div>
            </blockquote>
            <div>=C2=A0</div>
          </div>
=20=20=20=20=20=20=20=20=20=20
=20=20=20=20=20=20
=20=20=20=20=20=20
=20=20=20=20=20=20
      <!-- end group email -->
    </blockquote>
=20=20

</p>

    </div>
=20=20=20=20=20

    <!--~-|**|PrettyHtmlStart|**|-~-->
    <div style=3D"color: #fff; height: 0;">__._,_.___</div>

=20=20=20=20=20=20=20=20=20=20
=20=20
=20

=20=20=20=20
    <div style=3D"clear:both"> </div>

    <div id=3D"fromDMARC" style=3D"margin-top: 10px;">
        <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; background=
-color:#E3E3E3;">
        Posted by: =3D?UTF-8?Q?Germ=3Dc3=3Da1n_Arias?=3D &lt;germanandre@gm=
x.es&gt;        <hr style=3D"height:2px ; border-width:0; color:#E3E3E3; ba=
ckground-color:#E3E3E3;">
     </div>
    <div style=3D"clear:both"> </div>

    <table cellspacing=3D4px style=3D"margin-top: 10px; margin-bottom: 10px=
; color: #2D50FD;">
      <tbody>
        <tr>
          <td style=3D"font-size: 12px; font-family: arial; font-weight: bo=
ld; padding: 7px 5px 5px;"  >
                          <a style=3D"text-decoration: none; color: #2D50FD=
" href=3D"https://groups.yahoo.com/neo/groups/gobo-eiffel/conversations/mes=
sages/1918;_ylc=3DX3oDMTJwdDc5c3RvBF9TAzk3MzU5NzE0BGdycElkAzE1MjIyNzAEZ3Jwc=
3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzE5MTgEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxNTg5Nzg4=
MTM1?act=3Dreply&messageNum=3D1918">Reply via web post</a>
                      </td>
          <td>&bull;</td>
          <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;" >
            <a href=3D"mailto:[email protected]?subject=3DRe%3A%20%5Bgobo-=
eiffel%5D%20Problem%20with%20Makefile%20using%20EiffelStudio" style=3D"text=
-decoration: none; color: #2D50FD;">
               Reply to sender            </a>
          </td>
          <td>&bull;</td>
          <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;">
            <a href=3D"mailto:[email protected]?subject=3DRe%3A%2=
0%5Bgobo-eiffel%5D%20Problem%20with%20Makefile%20using%20EiffelStudio" styl=
e=3D"text-decoration: none; color: #2D50FD">
              Reply to group            </a>
          </td>
          <td>&bull;</td>
          <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;" >
            <a href=3D"https://groups.yahoo.com/neo/groups/gobo-eiffel/conv=
ersations/newtopic;_ylc=3DX3oDMTJldWdwdWppBF9TAzk3MzU5NzE0BGdycElkAzE1MjIyN=
zAEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTU4OTc4ODEzNQ--=
" style=3D"text-decoration: none; color: #2D50FD">Start a New Topic</a>
          </td>
          <td>&bull;</td>
          <td style=3D"font-size: 12px; font-family: arial; padding: 7px 5p=
x 5px;color: #2D50FD;" >
                            <a href=3D"https://groups.yahoo.com/neo/groups/=
gobo-eiffel/conversations/topics/1909;_ylc=3DX3oDMTM0bmlzbms5BF9TAzk3MzU5Nz=
E0BGdycElkAzE1MjIyNzAEZ3Jwc3BJZAMxNzA1MDA2NzY0BG1zZ0lkAzE5MTgEc2VjA2Z0cgRzb=
GsDdnRwYwRzdGltZQMxNTg5Nzg4MTM1BHRwY0lkAzE5MDk-" style=3D"text-decoration: =
none; color: #2D50FD;">Messages in this topic</a>
                (10)
                      </td>
        </tr>
      </tbody>
    </table>

=20=20=20=20=20=20=20=20

<!------- Start Nav Bar ------>
<!-- |**|begin egp html banner|**| -->
<!-- |**|end egp html banner|**| -->


    <div id=3D"ygrp-grfd" style=3D"font-family: Verdana; font-size: 12px; p=
adding: 15px 0;">
=20=20=20=20=20=20
<!-- |**|begin egp html banner|**| -->

      To Post a message, send it to:&nbsp;&nbsp; [email protected]<BR=
>
To Unsubscribe, send a blank message to: gobo-eiffel-unsubscribe-B11MqFFcr06IwRZHo2/[email protected]=
m=20=20=20=20=20=20
<!-- |**|end egp html banner|**| -->

    </div>
=20=20

=20

<!-- |**|begin egp html banner|**| -->
<div id=3D"ygrp-vital" style=3D"background-color: #f2f2f2; font-family: Ver=
dana; font-size: 10px; margin-bottom: 10px; padding: 10px;">

    <span id=3D"vithd" style=3D"font-weight: bold; color: #333; text-transf=
orm: uppercase; "><a href=3D"https://groups.yahoo.com/neo/groups/gobo-eiffe=
l/info;_ylc=3DX3oDMTJlZ3Awc2JyBF9TAzk3MzU5NzE0BGdycElkAzE1MjIyNzAEZ3Jwc3BJZ=
AMxNzA1MDA2NzY0BHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTU4OTc4ODEzNQ--" style=3D"t=
ext-decoration: none;">Visit Your Group</a></span>

     <ul style=3D"list-style-type: none; margin: 0; padding: 0; display: in=
line;">
                                                    </ul>
  </div>


<div id=3D"ft" style=3D"font-family: Arial; font-size: 11px; margin-top: 5p=
x; padding: 0 2px 0 0; clear: both;">
  <a href=3D"https://groups.yahoo.com/neo;_ylc=3DX3oDMTJkZzBjNGQwBF9TAzk3ND=
c2NTkwBGdycElkAzE1MjIyNzAEZ3Jwc3BJZAMxNzA1MDA2NzY0BHNlYwNmdHIEc2xrA2dmcARzd=
GltZQMxNTg5Nzg4MTM1" style=3D"float: left;"><img src=3D"https://s.yimg.com/=
ru/0.9.12/min/css/yahoo_en-US_f_pw_101x21.png" height=3D"21" width=3D"101" =
alt=3D"Yahoo! Groups" style=3D"border: 0;"/></a>
  <div style=3D"color: #747575; float: right;"> &bull; <a href=3D"https://i=
nfo.yahoo.com/privacy/us/yahoo/groups/details.html" style=3D"text-decoratio=
n: none;">Privacy</a> &bull; <a href=3D"mailto:gobo-eiffel-unsubscribe@yaho=
ogroups.com?subject=3DUnsubscribe" style=3D"text-decoration: none;">Unsubsc=
ribe</a> &bull; <a href=3D"https://info.yahoo.com/legal/us/yahoo/utos/terms=
/" style=3D"text-decoration: none;">Terms of Use</a> </div>
</div>
<br>

<!-- |**|end egp html banner|**| -->

  </div> <!-- ygrp-msg -->

=20
  <!-- Sponsor -->
  <!-- |**|begin egp html banner|**| -->
  <div id=3D"ygrp-sponsor" style=3D"width:160px; float:right; clear:none; m=
argin:0 0 25px 0; background: #fff;">

<!-- Start Recommendations -->
<div id=3D"ygrp-reco">
     </div>
<!-- End Recommendations -->



  </div>   <!-- |**|end egp html banner|**| -->

  <div style=3D"clear:both; color: #FFF; font-size:1px;">.</div>
</div>

  <img src=3D"http://geo.yahoo.com/serv?s=3D97359714/grpId=3D1522270/grpspI=
d=3D1705006764/msgId=3D1918/stime=3D1589788135" width=3D"1" height=3D"1"> <=
br>

<img src=3D"http://y.analytics.yahoo.com/fpc.pl?ywarid=3D515FB27823A7407E&a=
=3D10001310322279&js=3Dno&resp=3Dimg" width=3D"1" height=3D"1">=20

<div style=3D"color: #fff; height: 0;">__,_._,___</div>
<!--~-|**|PrettyHtmlEnd|**|-~-->

</body>

<!--~-|**|PrettyHtmlStart|**|-~-->
<head>
  <style type=3D"text/css">
  <!--
  #ygrp-mkp {
  border: 1px solid #d8d8d8;
  font-family: Arial;
  margin: 10px 0;
  padding: 0 10px;
}

#ygrp-mkp hr {
  border: 1px solid #d8d8d8;
}

#ygrp-mkp #hd {
  color: #628c2a;
  font-size: 85%;
  font-weight: 700;
  line-height: 122%;
  margin: 10px 0;
}

#ygrp-mkp #ads {
  margin-bottom: 10px;
}

#ygrp-mkp .ad {
  padding: 0 0;
}

#ygrp-mkp .ad p {
  margin: 0;
}

#ygrp-mkp .ad a {
  color: #0000ff;
  text-decoration: none;
}
  #ygrp-sponsor #ygrp-lc {
  font-family: Arial;
}

#ygrp-sponsor #ygrp-lc #hd {
  margin: 10px 0px;
  font-weight: 700;
  font-size: 78%;
  line-height: 122%;
}

#ygrp-sponsor #ygrp-lc .ad {
  margin-bottom: 10px;
  padding: 0 0;
}

  #actions {
    font-family: Verdana;
    font-size: 11px;
    padding: 10px 0;
  }

  #activity {
    background-color: #e0ecee;
    float: left;
    font-family: Verdana;
    font-size: 10px;
    padding: 10px;
  }

  #activity span {
    font-weight: 700;
  }

  #activity span:first-child {
    text-transform: uppercase;
  }

  #activity span a {
    color: #5085b6;
    text-decoration: none;
  }

  #activity span span {
    color: #ff7900;
  }

  #activity span .underline {
    text-decoration: underline;
  }

  .attach {
    clear: both;
    display: table;
    font-family: Arial;
    font-size: 12px;
    padding: 10px 0;
    width: 400px;
  }

  .attach div a {
    text-decoration: none;
  }

  .attach img {
    border: none;
    padding-right: 5px;
  }

  .attach label {
    display: block;
    margin-bottom: 5px;
  }

  .attach label a {
    text-decoration: none;
  }
=20=20
  blockquote {
    margin: 0 0 0 4px;
  }

  .bold {
    font-family: Arial;
    font-size: 13px;
    font-weight: 700;
  }

  .bold a {
    text-decoration: none;
  }

  dd.last p a {
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span {
    margin-right: 10px;
    font-family: Verdana;
    font-weight: 700;
  }

  dd.last p span.yshortcuts {
    margin-right: 0;
  }

  div.attach-table div div a {
    text-decoration: none;
  }

  div.attach-table {
    width: 400px;
  }

  div.file-title a, div.file-title a:active, div.file-title a:hover, div.fi=
le-title a:visited {
    text-decoration: none;
  }

  div.photo-title a, div.photo-title a:active, div.photo-title a:hover, div=
..photo-title a:visited {
    text-decoration: none;
  }

  div#ygrp-mlmsg #ygrp-msg p a span.yshortcuts {
    font-family: Verdana;
    font-size: 10px;
    font-weight: normal;
  }

  .green {
    color: #628c2a;
  }

  .MsoNormal {
    margin: 0 0 0 0;
  }

  o {
    font-size: 0;
  }

  #photos div {
    float: left;
    width: 72px;
  }

  #photos div div {
    border: 1px solid #666666;
    height: 62px;
    overflow: hidden;
    width: 62px;
  }

  #photos div label {
    color: #666666;
    font-size: 10px;
    overflow: hidden;
    text-align: center;
    white-space: nowrap;
    width: 64px;
  }

  #reco-category {
    font-size: 77%;
  }

  #reco-desc {
    font-size: 77%;
  }

  .replbq {
    margin: 4px;
  }

  #ygrp-actbar div a:first-child {
   /* border-right: 0px solid #000;*/
    margin-right: 2px;
    padding-right: 5px;
  }

  #ygrp-mlmsg {
    font-size: 13px;
    font-family: Arial, helvetica,clean, sans-serif;
    *font-size: small;
    *font: x-small;
  }

  #ygrp-mlmsg table {
    font-size: inherit;
    font: 100%;
  }

  #ygrp-mlmsg select, input, textarea {
    font: 99% Arial, Helvetica, clean, sans-serif;
  }

  #ygrp-mlmsg pre, code {
    font:115% monospace;
    *font-size:100%;
  }

  #ygrp-mlmsg * {
    line-height: 1.22em;
  }

  #ygrp-mlmsg #logo {
    padding-bottom: 10px;
  }


  #ygrp-msg p a {
    font-family: Verdana;
  }

  #ygrp-msg p#attach-count span {
    color: #1E66AE;
    font-weight: 700;
  }

  #ygrp-reco #reco-head {
    color: #ff7900;
    font-weight: 700;
  }

  #ygrp-reco {
    margin-bottom: 20px;
    padding: 0px;
  }

  #ygrp-sponsor #ov li a {
    font-size: 130%;
    text-decoration: none;
  }

  #ygrp-sponsor #ov li {
    font-size: 77%;
    list-style-type: square;
    padding: 6px 0;
  }=20

  #ygrp-sponsor #ov ul {
    margin: 0;
    padding: 0 0 0 8px;
  }

  #ygrp-text {
    font-family: Georgia;
  }

  #ygrp-text p {
    margin: 0 0 1em 0;
  }

  #ygrp-text tt {
    font-size: 120%;
  }

  #ygrp-vital ul li:last-child {
    border-right: none !important;=20
  }=20
  -->
  </style>
</head>

<!--~-|**|PrettyHtmlEnd|**|-~-->
</html>
<!-- end group email -->


--------------3567E1FF8D7DF6603FF6A8B2--