Windows / Tdmgcc64 - unable to compile Euphoria shared library file
- Posted by kelen_ 2 months ago
- 1245 views
A simple code as oe_main.ex calling oe_funct() defined in oe_dll.e
This code well compiled
But
This code compiled on Windows - euphoria-4.0.5
This code compiled on Windows - euphoria-4.1.0-Windows-x86
- On Windows - euphoria-4.0.5-ow with watcom
- On Linux - euphoria-4.0.5-Linux-ix86 with gcc
- On Linux - euphoria-4.1.0-Linux-x86 with gcc
- On Linux - euphoria-4.1.0-Linux-x64 with gcc (-extra-flags -no-pie)
- On Linux - euphoria-4.2.0-Linux-x64 with gcc
gives :
- (OE) oe_main (.exe) : Calling oe_dll_funct() from oe_dll (.so/.dll) - (OE) oe_dll (.so/.dll) : oe_dll_funct() says "Hello world !" - (OE) oe_main (.exe) : End
But
This code compiled on Windows - euphoria-4.0.5
- with gcc.exe (tdm64-1) 5.1.0
- with gcc.exe (tdm64-1) 10.3.0
- with gcc.exe (tdm32-1) 10.3.0
- with i686-w64-mingw32-gcc.exe (Rev10, Built by MSYS2 project) 12.2.0
gives :
- Translating code, pass: 1 2 3 generating - Compiling with GCC / Linking 100% ..\out\oe_dll.dll - Translating code, pass: 1 2 3 4 5 6 generating - Compiling with GCC / Linking 100% ..\out\oe_main.exe - -?-> (OE) oe_main (.exe) : define_c_funct() returns -1 - FAILURE
This code compiled on Windows - euphoria-4.1.0-Windows-x86
- with gcc.exe (tdm64-1) 5.1.0
- with gcc.exe (tdm64-1) 10.3.0
- with i686-w64-mingw32-gcc.exe (Rev10, Built by MSYS2 project) 12.2.0
gives :
- Translating code, pass: 1 2 3 generating - Compiling with GCC / Linking 100% ..\out\oe_dll.dll - Translating code, pass: 1 2 3 4 5 6 generating - Compiling with GCC / Linking 100% ..\out\oe_main.exe - ---> (OE) oe_main (.exe) : Calling oe_dll_funct() from oe_dll (.so/.dll) -?-> oe_main ends prematurely, no ex.err is product. ---> trace.out last line is : c_func(oe_dll_funct_rid, {}) - FAILURE
- and compiled with gcc.exe (tdm32-1) 10.3.0
gives :
- Translating code, pass: 1 2 3 generating - Compiling with GCC / Unable to link .\out\oe_dll.dll -?-> C:/Euphoria/bin/eu.a(be_runtime.o):be_runtime.c: undefined reference to `__ms_vsnprintf' -?-> C:/Euphoria/bin/eu.a(be_machine.o):be_machine.c: undefined reference to `__ms_vsnprintf' -?-> C:/Euphoria/bin/eu.a(be_w.o):be_w.c: undefined reference to `__ms_vsnprintf' - Translating code, pass: 1 2 3 4 5 6 7 8 9 generating - Compiling with GCC / Unable to link .\out\oe_main.exe -?-> C:/Euphoria/bin/eu.a(be_machine.o):be_machine.c: undefined reference to `__ms_vsnprintf' -?-> C:/Euphoria/bin/eu.a(be_w.o):be_w.c: undefined reference to `__ms_vsnprintf' -?-> C:/Euphoria/bin/eu.a(be_runtime.o):be_runtime.c: undefined reference to `__ms_vsnprintf' -?-> C:/Euphoria/bin/eu.a(be_callc.o):be_callc.c: undefined reference to `__ms_vsnprintf' - FAILURE
This code compiled on Windows - euphoria-4.1.0-Windows-x64
- with gcc.exe (tdm64-1) 5.1.0
- with gcc.exe (tdm64-1) 10.3.0
- with x86_64-w64-mingw32-gcc.exe (Rev10, Built by MSYS2 project) 12.2.0
gives :
- Translating code, pass: 1 2 3 generating ? User supplied library does not exist: C:\Euphoria\bin\euso.e - gcc -DEWINDOWS -fomit-frame-pointer -c -w -fsigned-char -O2 -m64 -IC:/Euphoria -ffast-math oe_dll.c -o oe_dll.o ? oe_dll.c: error: 'oe_dll_funct' aliased to undefined symbol '_1oe_dll_funct@0' ? void oe_dll_funct() __attribute__ ((alias ("_1oe_dll_funct@0"))); - Translating code, pass: 1 2 3 4 5 6 7 8 9 generating - Compiling with GCC / Linking 100% ..\out\oe_main.exe - ---> (OE) oe_main (.exe) : open_dll() returns 0 (expected) - FAILURE
Systems :
- - Linux x86_64 - 4.15.0-204-generic - Ubuntu - Mint 19.1
- - Windows_10 x86_64 - version 10.0.19044.2486
Question : Is there a way to compile Euphoria 4.1.0 shared library files on Windows ?
Regards, Philippe