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  <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: Re: Linking agains .so library on linux
From: Andrew Johnson <[email protected]>
To: "Madden, Timothy J." <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Mon, 20 Jun 2016 17:40:22 -0500
Hi Tim,

Slides 16 and 17 of this talk might help:

http://www.aps.anl.gov/epics/docs/APS2015/27-EPICS-Programming.pdf

- Andrew


On 06/20/2016 01:07 PM, Madden, Timothy J. wrote:
> 
> 
> Thanks (again) Mark.
> 
> I got it to work as long as I copied the libs to my ADPCO/lib/linux_x86_64 dir.
> To point the linker to the right dir I am using:
> 
> PROD_LDFLAGS +=-Wl,-rpath,/local/pco/sisw/lib64
> 
> That path does show up in the final link command, but it cannot find the libs in that dir. How does one tell a directory with PROD_SYS_LIBS?
> 
> Make file is like this:
> 
> PROD_LDFLAGS +=-Wl,-rpath,/local/pco/sisw/lib64
> PROD_LIBS += pco 
> PROD_LIBS += cameralink caputRecorder
> PROD_SYS_LIBS += clsersis display fglib5  
> 
> 
> The command is like  below. The only snag at this point is that I don't know how to point the linker to the proper dir containing the PROD_SYS_LIBs.
> 
> Thanks again
> T
> 
> 
> /usr/bin/g++ -o pcoApp -Wl,-Bstatic -L/local/pco/EPICS/base-3.14.12.5/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/areaDetector/ADCameralink/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/areaDetector/ADCore/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/areaDetector/ADPCO/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/asyn4-26/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/autosave-4-7/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/busy-1-3/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/calc-2-8/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/caputRecorder-1-4-2/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/seq-2-2-3/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/sscan-2-6-6/lib/linux-x86_64 -L/local/pco/hdf/lib -L/local/pco/szip/lib -Wl,-rpath,/local/pco/EPICS/base-3.14.12.5/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/areaDetector/ADCameralink/lib/linux-x86_64 
 -!
>  Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/areaDetector/ADCore/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/areaDetector/ADPCO/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/asyn4-26/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/autosave-4-7/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/busy-1-3/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/calc-2-8/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/caputRecorder-1-4-2/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/seq-2-2-3/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/sscan-2-6-6/lib/linux-x86_64 -Wl,-rpath,/local/pco/hdf/lib -Wl,-rpath,/local/pco/szip/lib        -m64        -Wl,-rpath,/local/pco/sisw/lib64        pcoApp_registerRecordDeviceDriver.o pcoAppMain.o   -lpco -lcameralink -lcaputRecorder -lNDPlugin -lADBase -lnetCDF -lNeXus -lcalc -lbusy -lsscan -lautosave -lasyn
  !
>  -lseq -lpv -lrecIoc -lsoftDevIoc -lmiscIoc -lrsrvIoc -ldbtools!
>  Ioc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom -lhdf5 -lsz -Wl,-Bdynamic -lclsersis -ldisplay -lfglib5 -ltiff -ljpeg -lxml2 -lz -lpthread   -lreadline -lm -lrt -ldl -lgcc
> 
> 
> _____________________________
> From: Mark Rivers [[email protected]]
> Sent: Monday, June 20, 2016 12:18 PM
> To: Madden, Timothy J.
> Cc: [email protected]
> Subject: Re: Linking agains .so library on linux
> 
> You need to reference your vendor .so file using PROD_SYS_LIBS not PROD_LIBS.
> 
> Mark
> 
> 
> Sent from my iPhone
> 
> On Jun 20, 2016, at 11:15 AM, Madden, Timothy J. <[email protected]<mailto:[email protected]>> wrote:
> 
> Dear EPICS:
> 
> 
> I want to link an IOC against an .so supplied by a vendor. The compile seems to only look for .a type libraries.
> Also I notice that on linking, -Bstatic is turned on. (I am using linux).
> I have epics base CONFIG_SITE file set to:
> SHARED_LIBRARIES=YES
> 
> #  Build client objects statically ?
> #        must be either YES or NO
> #
> STATIC_BUILD=NO
> 
> This seems like it should work.
> 
> How do I get rid of the -Bstatuc on my link, so it will look for .so files on link?
> 
> Here is the failing command:
> 
> /usr/bin/g++ -o pcoApp -Wl,-Bstatic -L/local/pco/EPICS/base-3.14.12.5/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/areaDetector/ADCameralink/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/areaDetector/ADCore/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/areaDetector/ADPCO/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/asyn4-26/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/autosave-4-7/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/busy-1-3/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/calc-2-8/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/caputRecorder-1-4-2/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/seq-2-2-3/lib/linux-x86_64 -L/local/pco/EPICS/synApps_5_5/support/sscan-2-6-6/lib/linux-x86_64 -L/local/pco/hdf/lib -L/local/pco/sisw/lib64 -L/local/pco/szip/lib -Wl,-rpath,/local/pco/EPICS/base-3.14.12.5/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/areaDetector/ADCame
 r!
>  alink/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/areaDetector/ADCore/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/areaDetector/ADPCO/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/asyn4-26/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/autosave-4-7/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/busy-1-3/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/calc-2-8/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/caputRecorder-1-4-2/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/seq-2-2-3/lib/linux-x86_64 -Wl,-rpath,/local/pco/EPICS/synApps_5_5/support/sscan-2-6-6/lib/linux-x86_64 -Wl,-rpath,/local/pco/hdf/lib -Wl,-rpath,/local/pco/sisw/lib64 -Wl,-rpath,/local/pco/szip/lib        -m64                pcoApp_registerRecordDeviceDriver.o pcoAppMain.o   -lpco -lcameralink -lcaputRecorder -lclsersis -lNDPlugin -lADBase -lnetCDF -lNeXus -lc
 a!
>  lc -lbusy -lsscan -lautosave -lasyn -lseq -lpv -lrecIoc -lsoft!
>  DevIoc -lmiscIoc -lrsrvIoc -ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom -lhdf5 -lsz -Wl,-Bdynamic -ltiff -ljpeg -lxml2 -lz -lpthread   -lreadline -lm -lrt -ldl -lgcc
> /usr/bin/ld: cannot find -lclsersis
> collect2: ld returned 1 exit status
> 
> 
> 
> Tim Madden
> Argonne
> 

-- 
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon

References:
Linking agains .so library on linux Madden, Timothy J.
Re: Linking agains .so library on linux Mark Rivers
RE: Linking agains .so library on linux Madden, Timothy J.

Navigate by Date:
Prev: RE: Linking agains .so library on linux Madden, Timothy J.
Next: IOCs under procServ as system services under systemd? Ralph Lange
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: RE: Linking agains .so library on linux Madden, Timothy J.
Next: Re: Linking agains .so library on linux Andrew Johnson
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 
ANJ, 15 Jul 2016 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·