EPICS Home

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  <20162017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: MCA under windows7 64-bit
From: Hinxx <[email protected]>
To: EPICS Tech-Talk <[email protected]>
Date: Fri, 17 Jun 2016 08:55:04 +0200
Hi,

I'm trying to get MCA R4-4 extension built under Windows7, 64-bit, for Matlab 2016a. I'm using Microsoft Windows SDK v7.1 and set of compilers that SDK provides (VS2010?).
EPICS base compilation goes nicely through, using windows-x64 target.

Compiler reports:

c:\MATLAB\R2016a\toolbox\mca>cl
Microsoft (R) C/C++ Optimizing Compiler Version 16.00.30319.01 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.


MCA compile line taken from one of the alt_compile files in mca.

c:\MATLAB\R2016a\toolbox\mca>mex mca.cpp MCAError.cpp Channel.cpp c:\base-3.14.12.5\lib\windows-x64\Com.lib c:\base-3.14.12.5\lib\windows-x64\ca.lib -DDB_TEXT_ LBLSOURCE -DMSCC -DEPICS_DLL_NO -DWIN64 -Ic:\base-3.14.12.5\include -Ic:\base-3.14.12.5\include\os\WIN32 -v -DWIN32

[... lots of cruft that I can post if needed ...]


I'm seeing this problem when linking:


link /nologo /manifest /DLL /EXPORT:mexFunction C:\Users\dummy\AppData\Local\Temp\mex_162312581152441_3188\mca.obj C:\Users\dummy\AppData\Local\Temp\mex_1623 2581152441_3188\MCAError.obj C:\Users\dummy\AppData\Local\Temp\mex_162312581152441_3188\Channel.obj c:\base-3.14.12.5\lib\windows-x64\Com.lib c:\base-3.14.12. \lib\windows-x64\ca.lib /LIBPATH:"C:\MATLAB\R2016a\extern\lib\win64\microsoft" libmx.lib libmex.lib libmat.lib kernel32.lib user32.lib gdi32.lib winspool.lib omdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /out:mca.mexw64
   Creating library mca.lib and object mca.exp
Channel.obj : error LNK2019: unresolved external symbol dbr_value_size referenced in function "private: void __cdecl Channel::AllocChanMem(void)" (?AllocChanMe
@Channel@@AEAAXXZ)
Channel.obj : error LNK2019: unresolved external symbol dbr_size referenced in function "private: void __cdecl Channel::AllocChanMem(void)" (?AllocChanMem@Chan
el@@AEAAXXZ)
Channel.obj : error LNK2019: unresolved external symbol dbf_text_dim referenced in function "private: void __cdecl Channel::AllocChanMem(void)" (?AllocChanMem@
hannel@@AEAAXXZ)
mca.mexw64 : fatal error LNK1120: 3 unresolved externals


Looking a bit into ca access.cpp source, epicsShareDef is used for dbr_value_size, dbr_size and dbf_text_dim.
Am I hitting shared vs. static build issue?
I'm also not sure if the -DWIN32 is adequate in MCA compile line - I want 64-bit mca mex object.

Any pointers welcomed.

Thanks,
Hinko

Replies:
RE: MCA under windows7 64-bit Mark Rivers
Re: MCA under windows7 64-bit Andrew Johnson

Navigate by Date:
Prev: Re: Problem in base 3.15.x at runtime Michael Davidsaver
Next: RE: MCA under windows7 64-bit Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Array record type in EPICS OPC device support Luca Cavalli
Next: RE: MCA under windows7 64-bit Mark Rivers
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  <20162017  2018  2019  2020  2021  2022  2023  2024