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  <20122013  2014  2015  2016  2017  2018  2019  2020  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020 
<== Date ==> <== Thread ==>

Subject: RE: Windows busy build error - epics 3.14.12.1
From: <ulrik.pedersen@diamond.ac.uk>
To: <Emma.Shepherd@synchrotron.org.au>, <rivers@cars.uchicago.edu>, <tech-talk@aps.anl.gov>
Date: Fri, 20 Apr 2012 10:43:03 +0000
Hi Emma,

The 5th choice: get the GraphicsMagick libraries that I've built with Visual Studio 2010 (spent days getting that to work a few months back). We use EPICS configured with static builds as Mark recommends -although some 3rd party support libraries only seem to work well as DLLs. It is perfectly possible to mix DLLs libraries with the static EPICS/IOC builds.

After working out the GraphicsMagick build the next issue was a similar one for the HDF5 libraries. I also now have MSVC 2010 builds of these.

We've been using Visual Studio 2010 on Windows 7 (actually Windows Server 2008R2) for a few months now. I'd really recommend staying with the more recent version of the Visual Studio as it is a rather painful task to upgrade when the tools become obsolete...

As I understand you have not currently got access to our svn repository I've tarred up our latest areaDetector release with our local DLS modifications (mainly the above mentioned libraries). I recommend that you copy the ADApp/hdf5Support/ and ADApp/magickSupport/ directories to your areaDetector build as it contains not just the MSVC2010 libs but also a few related minor tweaks to the Makefiles.

Please download the file from here: http://controls.diamond.ac.uk/downloads/other/files/areaDetector_1-7-1beta3-dls2.tar.gz

Just remember when you update to a new version of areaDetector (like 1-8) to not accidentally overwrite those MSVC2010 build libraries with Marks MSVC2008 build.

And of course let me know if you have trouble with it.

Cheers,
Ulrik


-----Original Message-----
From: tech-talk-bounces@aps.anl.gov [mailto:tech-talk-bounces@aps.anl.gov] On Behalf Of Emma Shepherd
Sent: 20 April 2012 05:37
To: Mark Rivers; tech-talk@aps.anl.gov
Subject: RE: Windows busy build error - epics 3.14.12.1

Aha - I see.  Thanks, will try to find a copy of VS 2008 in that case!

Emma

-----Original Message-----
From: Mark Rivers [mailto:rivers@cars.uchicago.edu] 
Sent: Friday, 20 April 2012 2:15 PM
To: Emma Shepherd; tech-talk@aps.anl.gov
Subject: RE: Windows busy build error - epics 3.14.12.1

Hi Emma,

There is a 4'th choice as well:

- Use the prebuilt version of areaDetector for the windows-x64 platform.

If you want to build it yourself I would recommend just switching to VS 2008.

Mark

________________________________________
From: Mark Rivers
Sent: Thursday, April 19, 2012 10:54 PM
To: Emma Shepherd; tech-talk@aps.anl.gov
Subject: RE: Windows busy build error - epics 3.14.12.1

Hi Emma,

Unfortunately that problem is more difficult.

It is arising because the GraphicsMagick library supplied with areaDetector was built with Visual Studio 2008, and you are building with VS 2010.  Microsoft changed their C++ library in incompatible ways between those 2 releases.

You have 3 choices:

- Build GraphicsMagick yourself with Visual Studio 2010.
- Use Visual Studio 2008 instead of 2010
- Change the Makefiles and dbd files in areaDetector to eliminate the use of GraphicsMagick.  That will mean eliminating URLDriver and NDFileMagick.

Mark

________________________________________
From: Emma Shepherd [Emma.Shepherd@synchrotron.org.au]
Sent: Thursday, April 19, 2012 10:32 PM
To: Mark Rivers; tech-talk@aps.anl.gov
Subject: RE: Windows busy build error - epics 3.14.12.1

Hi Mark,

Thanks for the reply.  Yes - I have defined ASYN in busy/configure/RELEASE.  I actually just came across your suggestion elsewhere (setting STATIC_BUILD=YES and SHARED_LIBRARIES=NO in base), and that does make the busy module build successfully.

I've run into the next problem now though!  Building AreaDetector 1-7 fails with a link error:

CORE_RL_Magick++_.lib(Color.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Drawable.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Blob.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Image.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Options.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Exception.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Geometry.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xran(void)" (?_Xran@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Color.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Drawable.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Blob.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Image.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Options.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Exception.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ)
CORE_RL_Magick++_.lib(Geometry.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl std::_String_base::_Xlen(void)" (?_Xlen@_String_base@std@@SAXXZ) simDetectorApp.exe : fatal error LNK1120: 2 unresolved externals
make[3]: *** [simDetectorApp.exe] Error 1120
make[3]: Leaving directory `C:/beamline/perforce/Dev/SBS/4_Controls/4_3_Network_Infrastructure/4_3_1_Comms_Common_Services/sw/epics/areaDetector-1-7/ADApp/simDetectorSrc/O.windows-x64'
make[2]: *** [install.windows-x64] Error 2
make[2]: Leaving directory `C:/beamline/perforce/Dev/SBS/4_Controls/4_3_Network_Infrastructure/4_3_1_Comms_Common_Services/sw/epics/areaDetector-1-7/ADApp/simDetectorSrc'
make[1]: *** [simDetectorSrc.install] Error 2
make[1]: Leaving directory `C:/beamline/perforce/Dev/SBS/4_Controls/4_3_Network_Infrastructure/4_3_1_Comms_Common_Services/sw/epics/areaDetector-1-7/ADApp'
make: *** [ADApp.install] Error 2

Hopefully just another simple configuration I'm missing?

Cheers,
Emma

-----Original Message-----
From: Mark Rivers [mailto:rivers@cars.uchicago.edu]
Sent: Friday, 20 April 2012 12:47 PM
To: Emma Shepherd; tech-talk@aps.anl.gov
Subject: RE: Windows busy build error - epics 3.14.12.1

Hi Emma,

Have you defined ASYN in busy/configure/RELEASE?  It is optional, and the Makefile should work without it, but you need to define it if you plan to use busy with areaDetector.

It looks like you are building dynamically (i.e. building .dll files), because otherwise it would not need asyn when building the library, only when building an executable.

This should work, but it's possible there is a problem somewhere that has not been found, because most people build for Windows statically, not dynamically.

If you want to build areaDetector then I don't think you can build dynamically, some of the libraries supplied with areaDetector (e.g. GraphicsMagick) require a static build.

I suggest you change

EPICS_BASE/configure/os/CONFIG_SITE.windows-x64.windows-x64

to define

STATIC_BUILD=YES
SHARED_LIBRARIES=NO

You then need to rebuild base and synApps.

Mark

________________________________________
From: tech-talk-bounces@aps.anl.gov [tech-talk-bounces@aps.anl.gov] on behalf of Emma Shepherd [Emma.Shepherd@synchrotron.org.au]
Sent: Thursday, April 19, 2012 8:15 PM
To: tech-talk@aps.anl.gov
Subject: Windows busy build error - epics 3.14.12.1

Hi folks,

Banging my head against a Windows build error...

I'm trying to get to the stage where I can build AreaDetector 1-7 on 64-bit Windows 7.  I can successfully build base-13-12-1 and asyn-4-18, but my first hurdle is that busy 1-4 fails with the following link error:

Creating library busy.lib and object busy.exp devBusyAsyn.obj : error LNK2001: unresolved external symbol pasynEpicsUtils devBusyAsyn.obj : error LNK2001: unresolved external symbol pasynInt32SyncIO devBusyAsyn.obj : error LNK2001: unresolved external symbol pasynManager devBusyAsyn.obj : error LNK2001: unresolved external symbol pasynTrace busy.dll : fatal error LNK1120: 4 unresolved externals
make[3]: *** [busy.dll] Error 1120
make[3]: Leaving directory `C:/beamline/perforce/Dev/SBS/4_Controls/4_3_Network_Infrastructure/4_3_1_Comms_Common_Services/sw/epics/busy-1-4/busyApp/src/O.windows-x64'
make[2]: *** [install.windows-x64] Error 2
make[2]: Leaving directory `C:/beamline/perforce/Dev/SBS/4_Controls/4_3_Network_Infrastructure/4_3_1_Comms_Common_Services/sw/epics/busy-1-4/busyApp/src'
make[1]: *** [src.install] Error 2
make[1]: Leaving directory `C:/beamline/perforce/Dev/SBS/4_Controls/4_3_Network_Infrastructure/4_3_1_Comms_Common_Services/sw/epics/busy-1-4/busyApp'
make: *** [busyApp.install] Error 2


I'm using Visual Studio 2010, and gnumake.  The problem seems to be with the version of EPICS base, as I get the same problem when I try to compile it as 32-bit as well unless I revert to EPICS 3.14.11.  I can build other modules that depend on asyn just fine (like std).

Any ideas?

Thanks,
Emma
<br>This message and any attachments may contain proprietary or confidential information. If you are not the intended recipient or you received the message in error, you must not use, copy or distribute the message. Please notify the sender immediately and destroy the original message. Thank you.
<br>This message and any attachments may contain proprietary or confidential information. If you are not the intended recipient or you received the message in error, you must not use, copy or distribute the message. Please notify the sender immediately and destroy the original message. Thank you.
<br>This message and any attachments may contain proprietary or confidential information. If you are not the intended recipient or you received the message in error, you must not use, copy or distribute the message. Please notify the sender immediately and destroy the original message. Thank you.

-- 
This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd. 
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
 





References:
Windows busy build error - epics 3.14.12.1 Emma Shepherd
RE: Windows busy build error - epics 3.14.12.1 Mark Rivers
RE: Windows busy build error - epics 3.14.12.1 Emma Shepherd
RE: Windows busy build error - epics 3.14.12.1 Mark Rivers
RE: Windows busy build error - epics 3.14.12.1 Mark Rivers
RE: Windows busy build error - epics 3.14.12.1 Emma Shepherd

Navigate by Date:
Prev: RE: Windows busy build error - epics 3.14.12.1 Emma Shepherd
Next: mrfioc2 compile error 송영기
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020 
Navigate by Thread:
Prev: RE: Windows busy build error - epics 3.14.12.1 Emma Shepherd
Next: How to apply for Java SWT DateTime widget in CSS OPI? [SEC=UNCLASSIFIED] WANG, Jian
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  <20122013  2014  2015  2016  2017  2018  2019  2020