Open ghost opened 2 years ago
I also did not understand .ecf
files or where they are documented.
I got a simple "Hello, World" project working though.
Example .ecf
and .e
files:
hello.ecf
:
<?xml version="1.0" encoding="ISO-8859-1"?>
<system
xmlns="http://www.eiffel.com/developers/xml/configuration-1-22-0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.eiffel.com/developers/xml/configuration-1-22-0 http://www.eiffel.com/developers/xml/configuration-1-22-0.xsd"
name="hello"
uuid="9C35A383-0000-4EF8-8784-D6F287B296A4"
>
<target name="hello">
<root class="HELLO" feature="make"/>
<file_rule>
<exclude>.git</exclude>
</file_rule>
<option warning="true">
<assertions precondition="true" postcondition="true" check="true" invariant="true" loop="true" supplier_precondition="true"/>
</option>
<!-- Assumes you set the GOBO environment variable to the path to your gobo repo folder, as per gobo's install instructions. -->
<library name="free_elks" location="${GOBO}/library/free_elks/library_ge.ecf" readonly="true"/>
<cluster name="root_cluster" location="./" recursive="false">
<file_rule>
<exclude>.git</exclude>
</file_rule>
</cluster>
</target>
</system>
hello.e
:
class HELLO
create
make
feature
make
do
print ("Hello, World%N")
end
end
Then, you can build the hello
executable with gec hello.ecf
Running the executable works as expected:
$ ./hello
Hello, World
$
Tested with Gobo Eiffel v22.01
Thank you. This should be on the front page! No instructions how to actually use gobo there.
Unfortunately:
tron$ gec hello.e
Degree 6: 0/0/0 0:0:0.054
Degree 5: 0/0/0 0:0:0.082
Degree 4: 0/0/0 0:0:0.013
Degree 3: 0/0/0 0:0:0.027
Degree -2: 0/0/0 0:0:0.023
Degree -3: 0/0/0 0:0:0.018
In file included from hello2.c:1:
./hello.h:6070:10: fatal error: 'iconv.h' file not found
#include <iconv.h>
^~~~~~~~~
1 error generated.
Degree -4: 0/0/0 0:0:4.041
Total Time: 0/0/0 0:0:4.259
Where did you get the daunting .xml from ? Are you all using an IDE? How to just start with a text editor like Emacs?
On this document (http://www.gobosoft.com/eiffel/gobo/geant/introduction.html) said:
The problem is, I don't have a system.ecf. How could I have one? Write manually? Or doing everything on Eiffel Studio, copy the ecf then compile with Gobo? Why it need to be that complicated? Why not simple as gcc test.c -o test or at least a simple makefile? I only want to compile my code to know if it's able to compile or not.
The whole Eiffel language and it ecosystem is the best example of how overengineering and overcomplicated means. I'm not fan of XML. I used to think the XML of Java is the worst. It turned out to be wrong. I should know with all of these XML, XML ontop of XML (ecf is XML and geant is also XML), it must be sucked real hard. I'm a hobbyist only want to learn the language. This is a showstopper. Goodbye.