Ecere SDK/eC Forums
http://www.ecere.com/community/
Print view

Help for github most recent update version compile failed
http://www.ecere.com/community/viewtopic.php?f=16&t=456
Page 1 of 1
Author:  samsam598 [ Thu Sep 08, 2022 3:57 am ]
Post subject:  Help for github most recent update version compile failed

How are you,Jerome!!!

Recently I tried to update my ecere sdk to the most recent update verion on github(Last updated in this July) to see whether there is some newly added documents/samples/features,esp. document I need very much because I am not a professional IT ,nor major in computer science.I just like c very much,but don't like c++ ,I think it is too complicated than the powerful feature provided.But ecere is what I think I like --pure c with 'some ' addtional oop and generic features.

Tried to build the sdk with several mingw compilers but none is successfull.

1. TDM-mingw5.1(from sdk installer 2016)
2. TDM-mingw10.3.0 downloadedan this month
3.mingw8.1
4.msys2-mingw64-x86_64 12.2.0 download in a couple of days
(try my best to get most recent ecere SDK to work)

With msys2-mingw 12.2.0 got this:
<code>
E:\Learning\ecereJuly282022>mingw32-make clean
Error: bindings/c/eC_c.Makefile not found!
Error: bindings/c/ecere_c.Makefile not found!
Error: bindings/c/EDA_c.Makefile not found!
Error: bindings/cpp/eC_cpp.Makefile not found!
Error: bindings/cpp/ecere_cpp.Makefile not found!
Error: bindings/cpp/EDA_cpp.Makefile not found!
Done.
E:\Learning\ecereJuly282022>mingw32-make -f makefile
Bootstrapping eC compiling tools...
Building ecere...
Building ec...
Building ecp...
Building ecc...
Building ecs...
All done!
Building dependencies...
Building FreeType...
Building libjpeg...
此时不应有 %%I。
mingw32-make[2]: *** [Makefile:174: obj/release.win32/libjpeg.a] Error 1
mingw32-make[1]: *** [Makefile:30: jpeg] Error 2
mingw32-make: *** [makefile:232: deps] Error 2
</code>

With mingw8.1 got this:
<code>
E:\Learning\ecereJuly282022>mingw32-make clean
Error: bindings/c/eC_c.Makefile not found!
Error: bindings/c/ecere_c.Makefile not found!
Error: bindings/c/EDA_c.Makefile not found!
Error: bindings/cpp/eC_cpp.Makefile not found!
Error: bindings/cpp/ecere_cpp.Makefile not found!
Error: bindings/cpp/EDA_cpp.Makefile not found!
Done.

E:\Learning\ecereJuly282022>mingw32-make -f makefile
Bootstrapping eC compiling tools...
Building ecere...
Building ec...
Building ecp...
Building ecc...
Building ecs...
strip: unable to rename 'obj/bootstrap.win32/ecs.exe'; reason: File exists
mingw32-make[3]: *** [Makefile:106: obj/bootstrap.win32/ecs.exe] Error 1
mingw32-make[2]: *** [Makefile:41: ecs] Error 2
mingw32-make[1]: *** [Makefile:36: bootstrap] Error 2
mingw32-make: *** [makefile:221: bootstrap] Error 2
</code>

With TDM10.3.0 got this:
</code>
E:\Learning\ecereJuly282022>mingw32-make clean
Error: bindings/c/eC_c.Makefile not found!
Error: bindings/c/ecere_c.Makefile not found!
Error: bindings/c/EDA_c.Makefile not found!
Error: bindings/cpp/eC_cpp.Makefile not found!
Error: bindings/cpp/ecere_cpp.Makefile not found!
Error: bindings/cpp/EDA_cpp.Makefile not found!
Done.

E:\Learning\ecereJuly282022>mingw32-make -f makefile
Bootstrapping eC compiling tools...
Building ecere...
Building ec...
Building ecp...
Building ecc...
Building ecs...
All done!
Building dependencies...
Building FreeType...
Building libjpeg...
Building libpng...
Building libungif...
Building libffi...
src/x86/ffi.c: In function 'ffi_closure_win64_inner':
src/x86/ffi.c:476:51: warning: function may return address of local variable [-Wreturn-local-addr]
476 | return cif->rtype->size > sizeof(void *) ? resp : *(void **)resp;
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
src/x86/ffi.c:455:18: note: declared here
455 | void *result;
| ^~~~~~
src/x86/ffi.c:455:18: note: declared here
Building zlib...
Building libcurl...
In file included from lib\vauth\cleartext.c:29:
lib/urldata.h:86:10: fatal error: openssl/ssl.h: No such file or directory
86 | #include <openssl/ssl.h>
| ^~~~~~~~~~~~~~~
compilation terminated.
Makefile:403: recipe for target 'obj/release.win32/cleartext.o' failed
mingw32-make[2]: *** [obj/release.win32/cleartext.o] Error 1
Makefile:45: recipe for target 'curl' failed
mingw32-make[1]: *** [curl] Error 2
makefile:231: recipe for target 'deps' failed
mingw32-make: *** [deps] Error 2
</code>


Running project ide.prj inside Ecere got this:
<code>
Default Compiler
Building project ide using the Debug configuration...
Generating symbols...
FileSystemIterator.ec
layout.ec
StringsBox.ec
DynamicString.ec
dpl.ec
CompilersDetectionDialog.ec
FindInFilesDialog.ec
GlobalSettingsDialog.ec
NewProjectDialog.ec
NodeProperties.ec
WorkspaceSettings.ec
ProjectTabSettings.ec
FontPicker.ec
Project.ec
ProjectConfig.ec
ProjectNode.ec
ProjectView.ec
Workspace.ec
vsSupport.ec
CodeEditor.ec
CodeObject.ec
Designer.ec
findCtx.ec
findExp.ec
findParams.ec
Sheet.ec
ToolBox.ec
SyntaxHighlighting.ec
SyntaxColorScheme.ec
error: Redefinition of class ecere::gui::controls::SyntaxColorScheme
debugFindCtx.ec
Debugger.ec
debugTools.ec
GDBDialog.ec
process.ec
BreakpointsView.ec
CallStackView.ec
OutputView.ec
ThreadsView.ec
WatchesView.ec
ModelView.ec
PictureEdit.ec
about.ec
ide.ec
IDESettings.ec
OldIDESettings.ec
ProjectSettings.ec
licensing.ec
Compiling...
FileSystemIterator.ec
FileSystemIterator.c
layout.ec
layout.c
StringsBox.ec
StringsBox.c
DynamicString.ec
..\extras\types\DynamicString.ec:32:4: warning: incompatible parameter onType (expected bool *)
..\extras\types\DynamicString.ec:32:4: error: Incompatible virtual function OnGetString
..\extras\types\DynamicString.ec:34:7: warning: Undeclared class ObjectNotationType

ecere-ide.exe (Debug) - 1 error, 3 warnings

</code>
The compiler should be mingw5.1 along with ecere sdk installer 2016.

I did not set MinGW in the system environment path,just build from bat file or IDE(the last one).
Here is the bat file:
<code>
set PATH=compiler\bin\path;%PATH%

mingw32-make clean
mingw32-make -f makefile
pause
</code>
bat file running from the root of newly downloaded & extracted ecere sdk.

By the way,is there a pre-built binary release version I can download (together with the exact compiler)?

Much appreciated for the help please.

Best Regards,
Sam
Author:  jerome [ Thu Sep 08, 2022 4:10 am ]
Post subject:  Re: Help for github most recent update version compile failed

Hi Sam!

Good to hear from you.

Right now the best way to build the SDK on Windows is to:

1. Install from the latest released Ecere SDK 0.44.15 (2016), mainly for the purpose of setting up the MinGW environment
2. git clone a more recent development branch from the GitHub repo (you can use e.g., "latest" with newer stuff, but "master" should also work)
3. build and install with mingw32-make clean ; mingw32-make ; mingw32-make install (requires admin)

As for a newer installer, unfortunately there is not one yet. I have been wanting to update this for quite a while but have been too busy with work projects.

As for newer documentation / samples / features, you will mostly find fixes / improvements and new or improved runtime library features.

Our IRC channel has moved to libera.chat, that would be the best place to get more timely help and investigate installations issues with you, as well as overall community support.

Best regards,

-Jerome

P.S. Some of these errors sound like a potential conflicts with GNU tools in your path (e.g., sh.exe), such as those found in C:/Program Files/Git/usr/bin that should NOT be in your path (only /bin/, not /usr/bin).
Author:  samsam598 [ Thu Sep 08, 2022 4:39 am ]
Post subject:  Re: Help for github most recent update version compile failed

Thanks for the prompt reply,Jerome!

I think the only git application is in msys2,but I did not set path in the system environment.As I mentioned below,I tried to build in IDE with TDM5.1,but failed with below :

Code: Select all

...
StringsBox.c
DynamicString.ec
..\extras\types\DynamicString.ec:32:4: warning: incompatible parameter onType (expected bool *)
..\extras\types\DynamicString.ec:32:4: error: Incompatible virtual function OnGetString
..\extras\types\DynamicString.ec:34:7: warning: Undeclared class ObjectNotationType

ecere-ide.exe (Debug) - 1 error, 3 warnings
The latest released Ecere SDK 0.44.15 (2016)--I had this already installed in my Win10 system and it works well.
The newly upadated version of Ecere SDK I downloaded from github ---last modified on 29th ,July.
I will try libera.chat.

Thank you again.

Best Regards,
Sam
Author:  jerome [ Thu Sep 08, 2022 5:55 pm ]
Post subject:  Re: Help for github most recent update version compile failed

Hi Sam,

You need to build the SDK from the command-line and install that version first before you can try to build it in the IDE.

Right now you are trying to build the new 2022 IDE, using the old 2016 ecere library, which had some breaking API changes, and that is why you get those errors.

Build it from the ecere-sdk directory with mingw32-make clean, mingw32-make, then mingw32-make install in Admin command prompt to install it. After that, you should be able to build the IDE project from the IDE again.

About the sh.exe error, I was talking about the `此时不应有 %%I。` error that you had with msys/mingw12.2.

Your TDM10.3.0 build log seems to be closest to working.
You probably just need to install OpenSSL e.g., from https://slproweb.com/products/Win32OpenSSL.html, and set the OPENSSL_CONF environment variable to e.g., `OPENSSL_CONF="C:\Program Files\OpenSSL-Win64\bin\openssl.cfg`.

Regards,

-Jerome
Author:  samsam598 [ Thu Sep 08, 2022 9:17 pm ]
Post subject:  Re: Help for github most recent update version compile failed

Installing openssl in c:\program files\ won't work,it seems my gcc does not accept path string with blank,so I uninstalled and reinstalled in c:\ and now it passed this part.

With TDM5.1 I got this:
<code>
E:\Learning\ecereJuly282022>mingw32-make clean
Error: bindings/c/eC_c.Makefile not found!
Error: bindings/c/ecere_c.Makefile not found!
Error: bindings/c/EDA_c.Makefile not found!
Error: bindings/cpp/eC_cpp.Makefile not found!
Error: bindings/cpp/ecere_cpp.Makefile not found!
Error: bindings/cpp/EDA_cpp.Makefile not found!
Done.

E:\Learning\ecereJuly282022>mingw32-make
Bootstrapping eC compiling tools...
Building ecere...
Building ec...
Building ecp...
Building ecc...
Building ecs...
All done!
Building dependencies...
Building FreeType...
Building libjpeg...
Building libpng...
Building libungif...
Building libffi...
Building zlib...
Building libcurl...
lib\vtls\openssl.c: In function 'get_cert_chain':
lib\vtls\openssl.c:2487:9: warning: 'EVP_PKEY_get0_RSA' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
rsa = EVP_PKEY_get0_RSA(pubkey);
^

^
In file included from lib\md5.c:88:0:
C:/OpenSSL-Win64/include/openssl/md5.h:51:27: note: declared here
OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c);
^
Building 2nd stage ecere...
C:\OpenSSL-Win64\include\openssl\core_dispatch.h:64:271: warning: incompatible return type for function

C:\OpenSSL-Win64\include\openssl\core_dispatch.h:935:323: warning: incompatible return type for function
makefile:1581: recipe for target `obj/release.win32/HTTPFile.c' failed
mingw32-make[1]: *** [obj/release.win32/HTTPFile.c] Error 1
makefile:239: recipe for target `ecere' failed
mingw32-make: *** [ecere] Error 2
</code>

With TDM10.6 I got this:
<code>
...

C:\OpenSSL-Win64\include\openssl\core_dispatch.h:925:276: warning: incompatible return type for function
C:\OpenSSL-Win64\include\openssl\core_dispatch.h:925:276: warning: incompatible return type for function
C:\OpenSSL-Win64\include\openssl\core_dispatch.h:927:270: warning: incompatible return type for function
C:\OpenSSL-Win64\include\openssl\core_dispatch.h:927:270: warning: incompatible return type for function
C:\OpenSSL-Win64\include\openssl\core_dispatch.h:929:298: warning: incompatible return type for function
C:\OpenSSL-Win64\include\openssl\core_dispatch.h:929:298: warning: incompatible return type for function
C:\OpenSSL-Win64\include\openssl\core_dispatch.h:933:199: warning: incompatible return type for function
C:\OpenSSL-Win64\include\openssl\core_dispatch.h:933:199: warning: incompatible return type for function
C:\OpenSSL-Win64\include\openssl\core_dispatch.h:934:207: warning: incompatible return type for function
C:\OpenSSL-Win64\include\openssl\core_dispatch.h:934:207: warning: incompatible return type for function
C:\OpenSSL-Win64\include\openssl\core_dispatch.h:935:323: warning: incompatible return type for function
C:\OpenSSL-Win64\include\openssl\core_dispatch.h:935:323: warning: incompatible return type for function
Makefile:1581: recipe for target 'obj/release.win32/HTTPFile.c' failed
mingw32-make[1]: *** [obj/release.win32/HTTPFile.c] Error 1
Makefile:239: recipe for target 'ecere' failed
mingw32-make: *** [ecere] Error 2

</code>


Am I almost there?^_^
Thank you again.

Best Regards,
Sam
Author:  jerome [ Thu Sep 08, 2022 9:31 pm ]
Post subject:  Re: Help for github most recent update version compile failed

It seems like it, but it's not clear what the actual error is?
Those look like warnings only? Is there more to the build log?
It is possible that fixes are needed ni HTTPFile.ec and/or Socket.ec to build with the latest OpenSSL.
Are you able to join #ecere on libera.chat IRC?
Author:  samsam598 [ Thu Sep 08, 2022 10:35 pm ]
Post subject:  Re: Help for github most recent update version compile failed

TDM5.1 & 10.6 both produced the error regarding HTTPFile.c,all the others are warnings ,not errors.

Last night I tried libera.chat but failed to found the entry to register,will try again later.

May I ask do you have a portable ecere sdk binary zip package for Windows(10)?If TDM5.1(together with ecere installer 2016) is fine,I already have it,and the latest sdk from github.I think only necessary libs and IDEs etc. would help a lot.

Best Regards,
Sam
All times are UTC-05:00 Page 1 of 1