I think I may see the problem. asyn/Makefile contains the lines:
ifeq ($(LINUX_GPIB),YES)
SRC_DIRS += $(ASYN)/linuxGpib
asyn_SRCS_Linux += drvLinuxGpib.c
DBD += drvLinuxGpib.dbd
asyn_LIBS += gpib
endif
The line
asyn_LIBS += gpib
tells the EPICS build system to look for libgpib.a in the EPICS directories. This does not seem to be correct, that is a system library, not an EPICS library. So I think that line should be
SYS_LIBS += gpib
You will also need that line when building applications that use asyn with gpib.
I don't have Linux GPIB so I can't test it. Please try it and let me know if it works.
Note, I think that LD_LIBRARY_PATH is used only at run-time to find .so files, not when building applications, so I would not expect it to work.
I don't think you have explained how libgpib.a got in the asyn tree, if it really is there.
Mark
________________________________
From: Jiro Fujita [mailto:[email protected]]
Sent: Mon 7/16/2007 8:54 PM
To: Mark Rivers; Andrew Johnson; EPICS tech-talk
Subject: Re: Asyn 4.8 compile error with Linux GPIB
Never mind... After make clean and make, I still get the original error...
So, I guess setting LD_LIBRARY_PATH to /usr/local/lib wasn't it after all...
On 7/16/07, Jiro Fujita <[email protected]> wrote:
> As far as I can tell, that libgpib.a got created once I put the
> LD_LIBRARY_PATH to /usr/local/lib. I can try make clean and make
> again to see what happens.
>
>
> On 7/16/07, Mark Rivers <[email protected]> wrote:
> > > Turns out, libgpib.so is in the same directory as libgpib.la
> > > (/usr/local/lib). So, I decided to set LD_LIBRARY_PATH to
> > > /usr/local/bin.
> >
> > So it should be looking for /usr/local/lib/libgpib.so
> >
> > > /home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/lib/linux-x86/libgpib.a:
> > > file not recognized: File format not recognized
> >
> >
> > But instead it is finding
> >
> > /home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/lib/linux-x86/libgpib.a
> >
> > Where did that libgpib.a file come from? Did you perhaps create it somehow when trying things with the .la file. Make sure that /home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/lib/linux-x86/libgpib.a does not exist.
> >
> > Mark
> >
> >
> >
> >
> >
> >
> > ________________________________
> >
> > From: [email protected] on behalf of Jiro Fujita
> > Sent: Mon 7/16/2007 5:55 PM
> > To: Andrew Johnson; EPICS tech-talk
> > Subject: Re: Asyn 4.8 compile error with Linux GPIB
> >
> >
> >
> > After I saw Guy's reply, I took a look at libgpib.la, and he is
> > correct. Turns out, libgpib.so is in the same directory as libgpib.la
> > (/usr/local/lib). So, I decided to set LD_LIBRARY_PATH to
> > /usr/local/bin.
> > This worked as far as the problem I had: I now do get pass libgpib.a
> > issue. However, I now get this error:
> >
> > /usr/bin/ar -rc libasyn.a asynManager.o
> > epicsInterruptibleSyscall.o asynGpib.o drvAsynSerialPort.o
> > drvAsynIPPort.o drvAsynIPServerPort.o asynInt32Base.o
> > asynInt32SyncIO.o asynInt32ArrayBase.o asynUInt32DigitalBase.o
> > asynUInt32DigitalSyncIO.o asynFloat64Base.o asynFloat64SyncIO.o
> > asynFloat64ArrayBase.o asynOctetBase.o asynOctetSyncIO.o
> > asynCommonSyncIO.o asynShellCommands.o asynInterposeEos.o
> > asynInterposeFlush.o devAsynOctet.o asynEpicsUtils.o devAsynInt32.o
> > devAsynInt32Array.o devAsynUInt32Digital.o devAsynFloat64.o
> > devAsynFloat64Array.o asynRecord.o drvAsyn.o vxi11core_xdr.o
> > drvVxi11.o E5810Reboot.o E2050Reboot.o TDS3000Reboot.o devCommonGpib.o
> > devSupportGpib.o boSRQonOff.o drvLinuxGpib.o
> > /usr/bin/ranlib libasyn.a
> > Installing library ../../lib/linux-x86/libasyn.a
> > /usr/bin/ranlib ../../lib/linux-x86/libasyn.a
> > /usr/bin/g++ -o libasyn.so -shared -fPIC
> > -L/home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/lib/linux-x86
> > -L/home/sysuser/epics.3.14.9/base-3.14.9/lib/linux-x86/
> > -Wl,-rpath,/home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/lib/linux-x86
> > -Wl,-rpath,/home/sysuser/epics.3.14.9/base-3.14.9/lib/linux-x86/
> > asynManager.o epicsInterruptibleSyscall.o asynGpib.o
> > drvAsynSerialPort.o drvAsynIPPort.o drvAsynIPServerPort.o
> > asynInt32Base.o asynInt32SyncIO.o asynInt32ArrayBase.o
> > asynUInt32DigitalBase.o asynUInt32DigitalSyncIO.o asynFloat64Base.o
> > asynFloat64SyncIO.o asynFloat64ArrayBase.o asynOctetBase.o
> > asynOctetSyncIO.o asynCommonSyncIO.o asynShellCommands.o
> > asynInterposeEos.o asynInterposeFlush.o devAsynOctet.o
> > asynEpicsUtils.o devAsynInt32.o devAsynInt32Array.o
> > devAsynUInt32Digital.o devAsynFloat64.o devAsynFloat64Array.o
> > asynRecord.o drvAsyn.o vxi11core_xdr.o drvVxi11.o E5810Reboot.o
> > E2050Reboot.o TDS3000Reboot.o devCommonGpib.o devSupportGpib.o
> > boSRQonOff.o drvLinuxGpib.o -lrecIoc -lsoftDevIoc -liocsh -lmiscIoc
> > -lrsrvIoc -ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc
> > -lca -lCom -lgpib -lpthread -lreadline -lcurses -lm -lrt -lgcc
> > /home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/lib/linux-x86/libgpib.a:
> > file not recognized: File format not recognized
> > collect2: ld returned 1 exit status
> > make[2]: *** [libasyn.so] Error 1
> > make[2]: Leaving directory
> > `/home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/asyn/O.linux-x86'
> > make[1]: *** [install.linux-x86] Error 2
> > make[1]: Leaving directory
> > `/home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/asyn'
> > make: *** [asyn.install] Error 2
> >
> >
> > Any ideas??
> >
> > On 7/16/07, Andrew Johnson <[email protected]> wrote:
> > > Guy Jennings wrote:
> > > > If you look at the .la file with a text editor it should be
> > > > human-readable and
> > > > should contain a line like 'libdir=/usr/lib' which tells where libtool
> > > > thought
> > > > that the real .a (or .so) library was to be installed.
> > >
> > > Guy is correct; IIRC the .la file is actually a shell script which
> > > programs that use libtool seem to be able to use instead of a library
> > > somehow before they've been properly installed (it may be that this is
> > > only possible as a shared library). The real libgpib.a (or maybe
> > > libgpib.so) file should be available in a hidden directory inside the
> > > same directory where the .la file is - you'll have to use 'ls -a' to
> > > find that directory though as I don't remember what the naming
> > > convention is that it uses; its name might be mentioned in the .la file
> > > itself too.
> > >
> > > - Andrew
> > >
> > > > On Jul 16, 2007, at 4:03 PM, Jiro Fujita wrote:
> > > >
> > > >> I originally installed the driver from National Instrument. Then,
> > > >> when I realized that it appears that Asyn wants to use Linux GPIB
> > > >> package library, according to asynDriver documentation
> > > >> (http://www.aps.anl.gov/epics/modules/soft/asyn/R4-8/asynDriver.html#Linux-gpib),
> > > >>
> > > >> I downloaded linux-gpib-3.2.09, did make and make install.
> > > >> I don't see libgpib.a anywhere on my machine: not in the same
> > > >> directory as libgpib.la nor where I compiled.
> > > >> It appears that at some point, libgpib.a has gotten renamed to
> > > >> libgpib.la in Linux GPIB package library. There has been some
> > > >> references of libgpib.a in older Linux GPIB package library (at least
> > > >> old version, I see a reference of it).
> > > >> I have not tracked down far enough to see where the reference to
> > > >> libgpib.a is made in Asyn (the assumption is that I need to change a
> > > >> few lines somewhere).
> > > >>
> > > >>
> > > >> On 7/16/07, Andrew Johnson <[email protected]> wrote:
> > > >>> Hi,
> > > >>>
> > > >>> Jiro Fujita wrote:
> > > >>> > I have been trying to compile Asyn 4-8 with Linux GPIB support. I am
> > > >>> > using a National Instrument PCI GPIB card with EPICS Base 3.14.9 on a
> > > >>> > Scientific Linux 4.2. The card is recognized by the system. I have
> > > >>> > installed linux-gpib-3.2.09.
> > > >>> > When I try to compile Asyn, I get the following error:
> > > >>>
> > > >>> ...
> > > >>>
> > > >>> > I looked for libgpib.a, but I don't see it on my machine. Instead, I
> > > >>> > find libgpib.la. Does anybody have an idea how to fix this??
> > > >>>
> > > >>> I have no experience with your specific problem, but I do know that a
> > > >>> libXXX.la file is usually a version of a library created by an
> > > >>> application that uses GNU libtool before it is installed using 'make
> > > >>> install'.
> > > >>>
> > > >>> Did you compile the National Instruments libgpib.la program yourself?
> > > >>> If so, try doing a 'make install' in that directory which in my
> > > >>> experience will cause the appropriate libgpib.a file to be created and
> > > >>> installed in the appropriate location. If you can't do that because you
> > > >>> don't have write access to the target directory you might need to re-run
> > > >>> the ./configure program in the GPIB build area specifying a
> > > >>> --prefix=/path/to/somewhere.
> > > >>>
> > > >>> As an alternative, you can try looking for a hidden directory in the
> > > >>> same directory as the libgpib.la file which I think will contain the
> > > >>> actual libgpib.a file that you're looking for.
> > > >>>
> > > >>> HTH,
> > > >>>
> > > >>> - Andrew
> > > >>> --
> > > >>> The right to be heard does not automatically include
> > > >>> the right to be taken seriously. -- Hubert H. Humphrey
> > > >>>
> > > >
> > >
> > >
> > > --
> > > The right to be heard does not automatically include
> > > the right to be taken seriously. -- Hubert H. Humphrey
> > >
> >
> >
> >
>
- Replies:
- Re: RE: Asyn 4.8 compile error with Linux GPIB Andrew Johnson
- References:
- Asyn 4.8 compile error with Linux GPIB Jiro Fujita
- Re: Asyn 4.8 compile error with Linux GPIB Andrew Johnson
- Re: Asyn 4.8 compile error with Linux GPIB Jiro Fujita
- Re: Asyn 4.8 compile error with Linux GPIB Guy Jennings
- Re: Asyn 4.8 compile error with Linux GPIB Andrew Johnson
- Re: Asyn 4.8 compile error with Linux GPIB Jiro Fujita
- RE: Asyn 4.8 compile error with Linux GPIB Mark Rivers
- Re: Asyn 4.8 compile error with Linux GPIB Jiro Fujita
- Re: Asyn 4.8 compile error with Linux GPIB Jiro Fujita
- Navigate by Date:
- Prev:
Re: Asyn 4.8 compile error with Linux GPIB Jiro Fujita
- Next:
MEDM fonts? Heinrich du Toit
- 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
2023
2024
- Navigate by Thread:
- Prev:
Re: Asyn 4.8 compile error with Linux GPIB Jiro Fujita
- Next:
Re: RE: Asyn 4.8 compile error with Linux GPIB 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
2016
2017
2018
2019
2020
2021
2022
2023
2024
|