EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
<== Date ==> <== Thread ==>

Subject: RE: LabCA for MATLAB Installation error
From: Freddie Akeroyd - STFC UKRI via Tech-talk <tech-talk at aps.anl.gov>
To: boj <lister at f77.dk>
Cc: Giovanni Franzini <giovanni.franzini at lnf.infn.it>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Tue, 19 Dec 2023 12:02:09 +0000
Hi Boj,

I'm not a user of labca, but we do use EPICS on windows and I have used matlab in the past, so I'm basing my answers on this rather than anything I can actually test for you unfortunately

The program is failing to link as it cannot find some functions from the matlab mex/mx libraries, I see that libmx.lib and libmex.lib are included on the command line but these files will be in Microsoft import library format and gcc/mingw didn't used to read this format, hence why you may be getting undefined symbols. Normally with gcc/mingw  you would be linking as e.g.  -lmex   and it would locate a  libmex.dll.a file to reference libmex.dll    If you were using the visual studio window compiler then it may work better as .lib is its native format. Does matlab provide *.dll.a files or just *.lib and *.dll ? You can create a mingw compatible .dll.a file the following way from the mingw shell

    # create libmex.def    
    gendef libmex.dll
    # create libmex.dll.a from libmex.def
    dlltool --def libmex.def  --output-lib libmex.dll.a

(in some cases the -k argument may also be needed with dlltool, add that if you still get link undefined errors using libmex.dll.a)

At one point I think it was possible to link directly against a dll in mingw and it would auto import, but I am not sure if that is still the case i.e. You would link against /d/Matlab2022a/extern/lib/win64/mingw64/libmx.dll rather than /d/Matlab2022a/extern/lib/win64/mingw64/libmx.lib  however creating a .dll.a is probably the better approach 

Regards,

Freddie

> -----Original Message-----
> From: boj <lister at f77.dk>
> Sent: 19 December 2023 10:45
> To: Akeroyd, Freddie (STFC,RAL,ISIS) <freddie.akeroyd at stfc.ac.uk>
> Cc: Giovanni Franzini <giovanni.franzini at lnf.infn.it>; tech-talk at aps.anl.gov
> Subject: Re: LabCA for MATLAB Installation error
> 
> Dear Freddie and all
> 
> I looked a bit more carefully at the errors, and here are some details,
> unfortunately I am not very skilled in either c/c++ programming or windows
> programming, so that makes it hard for me to understand what is important.
> 
> The setup is:
> 
> * Windows 10
> * MSYS2 MINGW64 compiler "complex" as recommended for the EPICS part
> * Matlab R2022a
> * epics-labca-labca_3_8_1
> * EPICS version base-3.15.9
> 
> In the labca source code I have set
> 
> configure/RELEASE
>      BASE_SUBDIR=
>      EPICS_BASE=/home/boj/base-3.15.9/
>      MATLABDIR = /d/Matlab2022a
>      MATLIB_SUBDIR=win64/mingw64
> 
> In my .bash_profile for MSYS2 I have
>      EPICS_BASE=/home/boj/base-3.15.9
>      EPICS_HOST_ARCH=windows-x64-mingw
>      PATH=${EPICS_BASE}/bin/${EPICS_HOST_ARCH}:${PATH}
> 
> EPICS  command line tools works
> 
> Included at the end of this mail is the full output of make, but as I understand
> it the problem is in the linking of mezcaglue.dll I get:
> 
> gcc          -DMATLAB_APP    -D_MINGW -D__USE_MINGW_ANSI_STDIO     -O3 -
> Wall      -m64 -DEPICS_BUILD_DLL -DEPICS_CALL_DLL    -I. -I../O.Common -I. -I.
> -I.. -I../../include/compiler/gcc -I../../include/os/WIN32 -I../../include    -
> I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include             -I../../ezca -
> I/d/Matlab2022a/extern/include    -o mglue.obj -c ../mglue.c
> g++ -o mezcaglue.dll -shared -Wl,--out-implib,libmezcaglue.dll.a
> -L/home/boj/epics-labca-labca_3_8_1/lib/windows-x64-mingw
> -L/home/boj/base-3.15.9/lib/windows-x64-mingw
> /d/Matlab2022a/extern/lib/win64/mingw64/libut.lib
> /d/Matlab2022a/extern/lib/win64/mingw64/libmx.lib
> /d/Matlab2022a/extern/lib/win64/mingw64/libmex.lib -m64 ini.obj
> multiEzca.obj ctrlC-polled.obj gitstring.obj mglue.obj -lezcamt -lca -lCom  -
> luser32 -lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x9b): undefined reference to `mexPrintf_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0xfe): undefined reference to `mexCallMATLAB_800'
> 
> Which then continues with  "undefined reference to `XXXX" for many lines and
> end with
> 
> collect2.exe: error: ld returned 1 exit status
> make[2]: *** [/home/boj/base-3.15.9/configure/RULES_BUILD:292:
> mezcaglue.dll] Error 1
> make[2]: Leaving directory
> '/home/boj/epics-labca-labca_3_8_1/glue/O.windows-x64-mingw'
> make[1]: *** [/home/boj/base-3.15.9/configure/RULES_ARCHS:58:
> install.windows-x64-mingw] Error 2
> make[1]: Leaving directory '/home/boj/epics-labca-labca_3_8_1/glue'
> make: *** [/home/boj/base-3.15.9/configure/RULES_DIRS:85: glue.install]
> Error 2
> 
> I hope this makes sence, and maybe can give a hint to what I am dooing
> wrong.
> 
> Best regards
> 
>      Bo
> 
> Full output of make:
> 
> boj@dk1080799 MINGW64 ~/epics-labca-labca_3_8_1 $ make
> make: git: No such file or directory
> make -C ./configure install
> make[1]: Entering directory '/home/boj/epics-labca-labca_3_8_1/configure'
> perl -CSD /home/boj/base-3.15.9/bin/windows-x64-mingw/makeMakefile.pl
> O.windows-x64-mingw ../..
> perl -CSD -MExtUtils::Command -e mkpath O.Common make -C O.windows-
> x64-mingw -f ../Makefile TOP=../.. \
>      T_A=windows-x64-mingw install
> make[2]: Entering directory
> '/home/boj/epics-labca-labca_3_8_1/configure/O.windows-x64-mingw'
> perl -CSD /home/boj/base-3.15.9/bin/windows-x64-mingw/convertRelease.pl
> checkRelease
> echo MEXEXT=.mexw64 >>MATLAB_CONFIG_INCLUDE
> make[2]: Leaving directory
> '/home/boj/epics-labca-labca_3_8_1/configure/O.windows-x64-mingw'
> make[1]: Leaving directory '/home/boj/epics-labca-labca_3_8_1/configure'
> make -C ./ezca install
> make[1]: Entering directory '/home/boj/epics-labca-labca_3_8_1/ezca'
> perl -CSD /home/boj/base-3.15.9/bin/windows-x64-mingw/makeMakefile.pl
> O.windows-x64-mingw ../..
> perl -CSD -MExtUtils::Command -e mkpath O.Common make -C O.windows-
> x64-mingw -f ../Makefile TOP=../.. \
>      T_A=windows-x64-mingw install
> make[2]: Entering directory
> '/home/boj/epics-labca-labca_3_8_1/ezca/O.windows-x64-mingw'
> gcc             -D_MINGW -D__USE_MINGW_ANSI_STDIO     -O3 -Wall
> -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL   -I. -I../O.Common -I. -I.
> -I.. -I../../include/compiler/gcc -I../../include/os/WIN32 -I../../include -
> I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include                  -MM -MF ezca.d -MT ezca.obj
> ../ezca.c gcc             -D_MINGW -D__USE_MINGW_ANSI_STDIO     -O3 -Wall
> -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL   -I. -I../O.Common -I. -I.
> -I.. -I../../include/compiler/gcc -I../../include/os/WIN32 -I../../include -
> I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include                 -o ezca.obj -c ../ezca.c
> ../ezca.c: In function 'ezcaLock':
> ../ezca.c:89:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     89 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:570:9: note: in expansion of macro 'EZCA_LOCK'
>    570 |         EZCA_LOCK();
>        |         ^~~~~~~~~
> ../ezca.c: In function 'ezcaUnlock':
> ../ezca.c:89:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     89 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:575:9: note: in expansion of macro 'EZCA_LOCK'
>    575 |         EZCA_LOCK();
>        |         ^~~~~~~~~
> ../ezca.c: In function 'ezcaPollCbInstall':
> ../ezca.c:89:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     89 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:612:9: note: in expansion of macro 'EZCA_LOCK'
>    612 |         EZCA_LOCK();
>        |         ^~~~~~~~~
> ../ezca.c:611:1: warning: this 'if' clause does not guard...
> [-Wmisleading-indentation]
>    611 | if ( (i=Initialized) )
>        | ^~
> ../ezca.c:614:9: note: ...this statement, but the latter is misleadingly indented
> as if it were guar ded by the 'if'
>    614 |         rval = pollCb;
>        |         ^~~~
> ../ezca.c:97:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     97 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:618:9: note: in expansion of macro 'EZCA_UNLOCK'
>    618 |         EZCA_UNLOCK();
>        |         ^~~~~~~~~~~
> ../ezca.c:617:1: warning: this 'if' clause does not guard...
> [-Wmisleading-indentation]
>    617 | if (i)
>        | ^~
> ../ezca.c:620:9: note: ...this statement, but the latter is misleadingly indented
> as if it were guar ded by the 'if'
>    620 |         return rval;
>        |         ^~~~~~
> ../ezca.c: In function 'ezcaEndGroupWithReport':
> ../ezca.c:89:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     89 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:713:33: note: in expansion of macro 'EZCA_LOCK'
>    713 |                                 EZCA_LOCK(); /* make *sure* mutex is not
> relinquished by add ing a nest count */
>        |                                 ^~~~~~~~~
> ../ezca.c:97:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     97 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:715:33: note: in expansion of macro 'EZCA_UNLOCK'
>    715 |                                 EZCA_UNLOCK();
>        |                                 ^~~~~~~~~~~
> ../ezca.c:966:13: warning: this 'if' clause does not guard...
> [-Wmisleading-indentation]
>    966 |             if (Trace || Debug)
>        |             ^~
> ../ezca.c:104:29: note: ...this statement, but the latter is misleadingly indented
> as if it were gua rded by the 'if'
>    104 | #define MARK_OUTSTANDING(n) do { if ( (ezcaOutstanding = (n)) )
> ca_flush_io(); } while (0)
>        |                             ^~
> ../ezca.c:969:17: note: in expansion of macro 'MARK_OUTSTANDING'
>    969 |                 MARK_OUTSTANDING(needs_work);
>        |                 ^~~~~~~~~~~~~~~~
> ../ezca.c:1063:29: warning: this 'if' clause does not guard...
> [-Wmisleading-indentation]
>   1063 |                             if (AutoErrorMessage)
>        |                             ^~
> ../ezca.c:1066:33: note: ...this statement, but the latter is misleadingly
> indented as if it were gu arded by the 'if'
>   1066 |                                 if ( MONBLOCK == wp->worktype && wp->pval )
>        |                                 ^~
> ../ezca.c: In function 'prologue':
> ../ezca.c:89:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     89 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:4905:9: note: in expansion of macro 'EZCA_LOCK'
>   4905 |         EZCA_LOCK();
>        |         ^~~~~~~~~
> ../ezca.c: In function 'epilogue':
> ../ezca.c:97:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     97 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:4934:9: note: in expansion of macro 'EZCA_UNLOCK'
>   4934 |         EZCA_UNLOCK();
>        |         ^~~~~~~~~~~
> ../ezca.c: In function 'EzcaClearChannel':
> ../ezca.c:97:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     97 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:5032:9: note: in expansion of macro 'EZCA_UNLOCK'
>   5032 |         EZCA_UNLOCK();
>        |         ^~~~~~~~~~~
> ../ezca.c:89:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     89 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:5034:9: note: in expansion of macro 'EZCA_LOCK'
>   5034 |         EZCA_LOCK();
>        |         ^~~~~~~~~
> ../ezca.c: In function 'EzcaPendEvent':
> ../ezca.c:5519:5: warning: this 'if' clause does not guard...
> [-Wmisleading-indentation]
>   5519 |     if (Trace || Debug)
>        |     ^~
> ../ezca.c:5522:9: note: ...this statement, but the latter is misleadingly indented
> as if it were gua rded by the 'if'
>   5522 |         if ( pollCb && pollCb() ) {
>        |         ^~
> ../ezca.c:97:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     97 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:5529:1: note: in expansion of macro 'EZCA_UNLOCK'
>   5529 | EZCA_UNLOCK();
>        | ^~~~~~~~~~~
> ../ezca.c:89:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     89 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:5546:1: note: in expansion of macro 'EZCA_LOCK'
>   5546 | EZCA_LOCK();
>        | ^~~~~~~~~
> ../ezca.c: In function 'EzcaPendIO':
> ../ezca.c:5584:5: warning: this 'if' clause does not guard...
> [-Wmisleading-indentation]
>   5584 |     if (Trace || Debug)
>        |     ^~
> ../ezca.c:5587:9: note: ...this statement, but the latter is misleadingly indented
> as if it were gua rded by the 'if'
>   5587 |         if ( pollCb && pollCb() ) {
>        |         ^~
> ../ezca.c:97:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     97 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:5590:1: note: in expansion of macro 'EZCA_UNLOCK'
>   5590 | EZCA_UNLOCK();
>        | ^~~~~~~~~~~
> ../ezca.c:89:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     89 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:5595:1: note: in expansion of macro 'EZCA_LOCK'
>   5595 | EZCA_LOCK();
>        | ^~~~~~~~~
> ../ezca.c: In function 'my_connection_callback':
> ../ezca.c:89:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     89 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:5697:1: note: in expansion of macro 'EZCA_LOCK'
>   5697 | EZCA_LOCK();
>        | ^~~~~~~~~
> ../ezca.c:97:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     97 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:5716:1: note: in expansion of macro 'EZCA_UNLOCK'
>   5716 | EZCA_UNLOCK();
>        | ^~~~~~~~~~~
> ../ezca.c: In function 'my_get_callback':
> ../ezca.c:89:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     89 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:5755:1: note: in expansion of macro 'EZCA_LOCK'
>   5755 | EZCA_LOCK();
>        | ^~~~~~~~~
> ../ezca.c:6949:13: warning: this 'if' clause does not guard...
> [-Wmisleading-indentation]
>   6949 |             if (Trace || Debug)
>        |             ^~
> ../ezca.c:6951:17: note: ...this statement, but the latter is misleadingly
> indented as if it were gu arded by the 'if'
>   6951 |                 recycle_work(wp);
>        |                 ^~~~~~~~~~~~
> ../ezca.c:97:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     97 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:6963:1: note: in expansion of macro 'EZCA_UNLOCK'
>   6963 | EZCA_UNLOCK();
>        | ^~~~~~~~~~~
> ../ezca.c: In function 'my_monitor_callback':
> ../ezca.c:89:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     89 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:6999:1: note: in expansion of macro 'EZCA_LOCK'
>   6999 | EZCA_LOCK();
>        | ^~~~~~~~~
> ../ezca.c:97:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     97 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:7191:1: note: in expansion of macro 'EZCA_UNLOCK'
>   7191 | EZCA_UNLOCK();
>        | ^~~~~~~~~~~
> ../ezca.c: In function 'my_put_callback':
> ../ezca.c:89:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     89 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:7217:1: note: in expansion of macro 'EZCA_LOCK'
>   7217 | EZCA_LOCK();
>        | ^~~~~~~~~
> ../ezca.c:7249:13: warning: this 'if' clause does not guard...
> [-Wmisleading-indentation]
>   7249 |             if (Trace || Debug)
>        |             ^~
> ../ezca.c:7251:17: note: ...this statement, but the latter is misleadingly
> indented as if it were gu arded by the 'if'
>   7251 |                 recycle_work(wp);
>        |                 ^~~~~~~~~~~~
> ../ezca.c:97:25: warning: cast from pointer to integer of different size [-
> Wpointer-to-int-cast]
>     97 |                         (unsigned long)epicsThreadGetIdSelf()); \
>        |                         ^
> ../ezca.c:7263:1: note: in expansion of macro 'EZCA_UNLOCK'
>   7263 | EZCA_UNLOCK();
>        | ^~~~~~~~~~~
> ../ezca.c: In function 'print_discarded_channels':
> ../ezca.c:7886:5: warning: this 'for' clause does not guard...
> [-Wmisleading-indentation]
>   7886 |     for (cp = Discarded_channels; cp; cp = cp->next)
>        |     ^~~
> ../ezca.c:7888:9: note: ...this statement, but the latter is misleadingly indented
> as if it were gua rded by the 'for'
>   7888 |         printf("\n");
>        |         ^~~~~~
> g++ -o ezcamt.dll -shared -Wl,--out-implib,libezcamt.dll.a
> -L/home/boj/epics-labca-labca_3_8_1/lib/windows-x64-mingw
> -L/home/boj/base-3.15.9/lib/windows-x64-mingw -m64
> ezca.obj    -lca -lCom      -lws2_32 -ladvapi32 -luser32 -lkernel32 -lwinmm
> Installing shared library ../../bin/windows-x64-mingw/ezcamt.dll
> mkdir ../../bin
> mkdir ../../bin/windows-x64-mingw
> Installing DLL stub library ../../lib/windows-x64-mingw/libezcamt.dll.a
> mkdir ../../lib
> mkdir ../../lib/windows-x64-mingw
> make[2]: Leaving directory
> '/home/boj/epics-labca-labca_3_8_1/ezca/O.windows-x64-mingw'
> make[1]: Leaving directory '/home/boj/epics-labca-labca_3_8_1/ezca'
> make -C ./glue install
> make[1]: Entering directory '/home/boj/epics-labca-labca_3_8_1/glue'
> perl -CSD /home/boj/base-3.15.9/bin/windows-x64-mingw/makeMakefile.pl
> O.windows-x64-mingw ../..
> perl -CSD -MExtUtils::Command -e mkpath O.Common
> make -C O.windows-x64-mingw -f ../Makefile TOP=../.. \
>      T_A=windows-x64-mingw install
> make[2]: Entering directory
> '/home/boj/epics-labca-labca_3_8_1/glue/O.windows-x64-mingw'
> g++          -DMATLAB_APP    -D_MINGW -D__USE_MINGW_ANSI_STDIO -O3
> -Wall      -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL   -I. -I../O.Common
> -I. -I. -I.. -I../../include/compiler/gcc -I../../include/os/WIN32
> -I../../include -I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include             -I../../ezca
> -I/d/Matlab2022a/extern/include     -MM -MF ini.d -MT ini.obj ../ini.cc
> gcc          -DMATLAB_APP    -D_MINGW -D__USE_MINGW_ANSI_STDIO -O3
> -Wall      -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL    -I.
> -I../O.Common -I. -I. -I.. -I../../include/compiler/gcc
> -I../../include/os/WIN32 -I../../include
> -I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include             -I../../ezca
> -I/d/Matlab2022a/extern/include     -MM -MF multiEzca.d -MT
> multiEzca.obj ../multiEzca.c
> gcc          -DMATLAB_APP    -D_MINGW -D__USE_MINGW_ANSI_STDIO -O3
> -Wall      -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL    -I.
> -I../O.Common -I. -I. -I.. -I../../include/compiler/gcc
> -I../../include/os/WIN32 -I../../include
> -I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include             -I../../ezca
> -I/d/Matlab2022a/extern/include     -MM -MF ctrlC-polled.d -MT
> ctrlC-polled.obj ../ctrlC-polled.c
> perl -CSD -MExtUtils::Command -e rm_f gitstring.c.new
> perl > gitstring.c.new -e "print(\"const char *gitRevisionString =
> \\\"labca_3_8_1 - ef74a39\\\";\n\")" > gitstring.c.new
> perl -MFile::Compare -e 'exit( compare(@ARGV[0],@ARGV[1]) )'
> gitstring.c.new gitstring.c || (perl -CSD -MExtUtils::Command -e rm_f
> gitstring.c; perl -e 'rename("gitstring.c.new","gitstring.c")')
> perl -CSD -MExtUtils::Command -e rm_f gitstring.c.new
> gcc          -DMATLAB_APP    -D_MINGW -D__USE_MINGW_ANSI_STDIO -O3
> -Wall      -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL    -I.
> -I../O.Common -I. -I. -I.. -I../../include/compiler/gcc
> -I../../include/os/WIN32 -I../../include
> -I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include             -I../../ezca
> -I/d/Matlab2022a/extern/include     -MM -MF gitstring.d -MT
> gitstring.obj gitstring.c
> gcc          -DMATLAB_APP    -D_MINGW -D__USE_MINGW_ANSI_STDIO -O3
> -Wall      -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL    -I.
> -I../O.Common -I. -I. -I.. -I../../include/compiler/gcc
> -I../../include/os/WIN32 -I../../include
> -I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include             -I../../ezca
> -I/d/Matlab2022a/extern/include     -MM -MF mglue.d -MT mglue.obj
> ../mglue.c
> g++          -DMATLAB_APP    -D_MINGW -D__USE_MINGW_ANSI_STDIO -O3
> -Wall      -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL   -I. -I../O.Common
> -I. -I. -I.. -I../../include/compiler/gcc -I../../include/os/WIN32
> -I../../include -I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include             -I../../ezca
> -I/d/Matlab2022a/extern/include    -o ini.obj -c ../ini.cc
> gcc          -DMATLAB_APP    -D_MINGW -D__USE_MINGW_ANSI_STDIO -O3
> -Wall      -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL    -I.
> -I../O.Common -I. -I. -I.. -I../../include/compiler/gcc
> -I../../include/os/WIN32 -I../../include
> -I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include             -I../../ezca
> -I/d/Matlab2022a/extern/include    -o multiEzca.obj -c ../multiEzca.c
> ../multiEzca.c:27: warning: "isnan" redefined
>     27 | #define isnan _isnan
>        |
> In file included from ../multiEzca.c:13:
> C:/msys64/mingw64/include/math.h:586: note: this is the location of the
> previous definition
>    586 | #define isnan(x) \
>        |
> In file included from ../multiEzca.c:32:
> D:/Matlab2022a/extern/include/mex.h:197: warning: "printf" redefined
>    197 | #define printf mexPrintf
>        |
> In file included from ../multiEzca.c:24:
> C:/msys64/home/boj/base-3.15.9/include/epicsStdio.h:41: note: this is
> the location of the previous d
> efinition
>     41 | #  define printf epicsStdoutPrintf
>        |
> gcc          -DMATLAB_APP    -D_MINGW -D__USE_MINGW_ANSI_STDIO -O3
> -Wall      -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL    -I.
> -I../O.Common -I. -I. -I.. -I../../include/compiler/gcc
> -I../../include/os/WIN32 -I../../include
> -I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include             -I../../ezca
> -I/d/Matlab2022a/extern/include    -o ctrlC-polled.obj -c ../ctrlC-polled.c
> gcc          -DMATLAB_APP    -D_MINGW -D__USE_MINGW_ANSI_STDIO -O3
> -Wall      -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL    -I.
> -I../O.Common -I. -I. -I.. -I../../include/compiler/gcc
> -I../../include/os/WIN32 -I../../include
> -I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include             -I../../ezca
> -I/d/Matlab2022a/extern/include    -o gitstring.obj -c gitstring.c
> gcc          -DMATLAB_APP    -D_MINGW -D__USE_MINGW_ANSI_STDIO -O3
> -Wall      -m64   -DEPICS_BUILD_DLL -DEPICS_CALL_DLL    -I.
> -I../O.Common -I. -I. -I.. -I../../include/compiler/gcc
> -I../../include/os/WIN32 -I../../include
> -I/home/boj/base-3.15.9/include/compiler/gcc
> -I/home/boj/base-3.15.9/include/os/WIN32
> -I/home/boj/base-3.15.9/include             -I../../ezca
> -I/d/Matlab2022a/extern/include    -o mglue.obj -c ../mglue.c
> g++ -o mezcaglue.dll -shared -Wl,--out-implib,libmezcaglue.dll.a
> -L/home/boj/epics-labca-labca_3_8_1/lib/windows-x64-mingw
> -L/home/boj/base-3.15.9/lib/windows-x64-mingw
> /d/Matlab2022a/extern/lib/win64/mingw64/libut.lib
> /d/Matlab2022a/extern/lib/win64/mingw64/libmx.lib
> /d/Matlab2022a/extern/lib/win64/mingw64/libmex.lib -m64
> ini.obj multiEzca.obj ctrlC-polled.obj gitstring.obj mglue.obj
> -lezcamt -lca -lCom  -luser32 -lws2_32 -ladvapi32 -luser32 -lkernel32
> -lwinmm
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x9b): undefined reference to `mexPrintf_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0xfe): undefined reference to `mexCallMATLAB_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x126): undefined reference to `mxGetScalar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x1d9): undefined reference to `mexCallMATLAB_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x256): undefined reference to `mxGetScalar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x37e): undefined reference to `mexCallMATLAB_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x39e): undefined reference to `mxGetScalar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x4e6): undefined reference to `mexCallMATLAB_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x506): undefined reference to `mxGetScalar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x5d0): undefined reference to
> `mexCallMATLABWithTrap_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x5f7): undefined reference to `mxDestroyArray_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x678): undefined reference to `mexLock_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x6b1): undefined reference to `mexCallMATLAB_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x726): undefined reference to `mxIsChar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x74e): undefined reference to `mxGetScalar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x796): undefined reference to `mxGetN_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x7b9): undefined reference to `mxGetString_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x997): undefined reference to
> `mexCallMATLABWithTrap_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0x9c2): undefined reference to `mxDestroyArray_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0xa48): undefined reference to `mexLock_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0xa81): undefined reference to `mexCallMATLAB_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0xb06): undefined reference to `mxIsChar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0xb36): undefined reference to `mxGetScalar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0xb86): undefined reference to `mxGetN_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ini.obj:ini.cc:(.text+0xba9): undefined reference to `mxGetString_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x11d): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x145): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x3dd): undefined reference to
> `mexPrintf_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x5c3): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x5db): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x6ea): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x914): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x91e): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x928): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0xe84): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x1062): undefined reference to
> `mxCalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x107a): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x1238): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x1242): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x124c): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x1256): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x1260): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x126a): more undefined references to
> `mxFree_800' follow
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x1326): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x1346): undefined reference to
> `mxCalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x136c): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x138e): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x1847): undefined reference to
> `mexPrintf_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x187f): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x1e19): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x1f51): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x1fe7): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x2063): undefined reference to
> `mxCalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x322e): undefined reference to
> `mxCalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x335b): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x35e4): undefined reference to
> `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x365a): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x3662): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x39d7): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x3ad4): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x3b42): undefined reference to
> `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : multiEzca.obj:multiEzca.c:(.text+0x3b68): more undefined references to
> `mxFree_800' follow
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : ctrlC-polled.obj:ctrlC-polled.c:(.text+0x5): undefined reference to
> `utHandlePendingInterrupt'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x29): undefined reference to `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x38): undefined reference to `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x9c): undefined reference to `mxIsCell_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0xac): undefined reference to `mxIsCell_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0xbc): undefined reference to `mxIsCell_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0xd3): undefined reference to `mxCalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0xf4): undefined reference to `mxIsChar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x100): undefined reference to `mxGetM_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x10e): undefined reference to `mxGetN_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x11b): undefined reference to `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x136): undefined reference to `mxGetString_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x156): undefined reference to `mxIsCell_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x165): undefined reference to `mxGetCell_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x1a9): undefined reference to `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x1b8): undefined reference to `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x1e4): undefined reference to `mxGetN_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x214): undefined reference to `mxIsChar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x241): undefined reference to `mxGetM_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x24c): undefined reference to `mxIsCell_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x266): undefined reference to `mxCalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x2e4): undefined reference to `mxIsChar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x404): undefined reference to `mxIsChar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x41b): undefined reference to `mxGetString_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x510): undefined reference to
> `mxDestroyArray_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x581): undefined reference to `mxGetN_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x58e): undefined reference to `mxGetM_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x59b): undefined reference to `mxIsChar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x5ae): undefined reference to `mxIsCell_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x5d5): undefined reference to `mxCalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x5fc): undefined reference to `mxGetM_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x60a): undefined reference to `mxGetN_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x617): undefined reference to `mxMalloc_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x632): undefined reference to `mxGetString_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x652): undefined reference to `mxGetCell_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x65d): undefined reference to `mxIsChar_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x699): undefined reference to `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x6a6): undefined reference to `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x6b3): undefined reference to
> `mxDestroyArray_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x6d9): undefined reference to `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x6ea): undefined reference to `mxFree_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x71b): undefined reference to
> `mxCreateCellMatrix_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x732): undefined reference to
> `mxDuplicateArray_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x73f): undefined reference to `mxSetCell_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x759): undefined reference to `mxIsCell_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x76d): undefined reference to `mxIsDouble_800'
> C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-
> mingw32/13.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe
> : mglue.obj:mglue.c:(.text+0x8b5): undefined reference to `mxGetPr_800'
> collect2.exe: error: ld returned 1 exit status
> make[2]: *** [/home/boj/base-3.15.9/configure/RULES_BUILD:292:
> mezcaglue.dll] Error 1
> make[2]: Leaving directory
> '/home/boj/epics-labca-labca_3_8_1/glue/O.windows-x64-mingw'
> make[1]: *** [/home/boj/base-3.15.9/configure/RULES_ARCHS:58:
> install.windows-x64-mingw] Error 2
> make[1]: Leaving directory '/home/boj/epics-labca-labca_3_8_1/glue'
> make: *** [/home/boj/base-3.15.9/configure/RULES_DIRS:85: glue.install]
> Error 2
> 
> boj@dk1080799 MINGW64 ~/epics-labca-labca_3_8_1
> $
> 
> 
> On 18-12-2023 18:49, Freddie Akeroyd - STFC UKRI wrote:
> > Hi Bo,
> >
> > Do you see the same error as Giovanni saw, or are you getting a different
> build failure?
> >
> > Regards,
> >
> > Freddie
> >

References:
LabCA for MATLAB Installation error Giovanni Franzini via Tech-talk
Re: LabCA for MATLAB Installation error Straumann Till Sascha via Tech-talk
Re: LabCA for MATLAB Installation error boj via Tech-talk
RE: LabCA for MATLAB Installation error Freddie Akeroyd - STFC UKRI via Tech-talk
Re: LabCA for MATLAB Installation error boj via Tech-talk

Navigate by Date:
Prev: Agilent analytics devices like GCs (gas chromatography) integration into EPICS framework? Heinz Junkes via Tech-talk
Next: Re: Steps for installing any EPICS Device Support module Ralph Lange via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
Navigate by Thread:
Prev: Re: LabCA for MATLAB Installation error boj via Tech-talk
Next: Issue installing asyn on CentOS 7 Brandon Gunn via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  <20232024 
ANJ, 19 Dec 2023 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·