Experimental Physics and Industrial Control System
Hi Qingru,
As I suspected the error is happening when it is building the application for Linux, not when it is being built for vxWorks.
This is because your Makefile contains the lines:
-------testApp/src/Makefile-------------
test_DBD += vxStats.dbd
test_LIBS_vxWorks += vxStats
So you have told it to build the application with the vxStats.dbd file for both vxLinux and vxWorks, but you have only told it to use the vxStats library on vxWorks.
You need to change your Makefile to either not build the application at all on Linux, or to only include the vxStats.dbd file on vxWorks, not on all platforms.
Mark
________________________________
From: Mi Qingru [mailto:[email protected]]
Sent: Sun 2/15/2009 7:33 PM
To: Mark Rivers; epics tech-talk
Subject: Re: Add vxstats to an application
I am so sorry for the late reply and the lost topic.
The following is the out of make after make clean.
make -C configure install
make[1]: Entering directory `/home/blctrl/epics/vxstatsTest/configure'
perl /BLC/epics/base/configure/tools/convertRelease.pl -h linux-x86 checkRelease
perl /BLC/epics/base/configure/tools/makeMakefile.pl O.linux-x86 ../..
perl /BLC/epics/base/configure/tools/makeMakefile.pl O.vxWorks-ppc604_long ../..
mkdir O.Common
make -C O.linux-x86 -f ../Makefile TOP=../.. T_A=linux-x86 install
make[2]: Entering directory `/home/blctrl/epics/vxstatsTest/configure/O.linux-x86'
perl /BLC/epics/base/configure/tools/convertRelease.pl -h linux-x86 CONFIG_APP_INCLUDE
perl /BLC/epics/base/configure/tools/convertRelease.pl -h linux-x86 RULES_INCLUDE
make[2]: Leaving directory `/home/blctrl/epics/vxstatsTest/configure/O.linux-x86'
make -C O.vxWorks-ppc604_long -f ../Makefile TOP=../.. T_A=vxWorks-ppc604_long install
make[2]: Entering directory `/home/blctrl/epics/vxstatsTest/configure/O.vxWorks-ppc604_long'
perl /BLC/epics/base/configure/tools/convertRelease.pl -h linux-x86 CONFIG_APP_INCLUDE
perl /BLC/epics/base/configure/tools/convertRelease.pl -h linux-x86 RULES_INCLUDE
make[2]: Leaving directory `/home/blctrl/epics/vxstatsTest/configure/O.vxWorks-ppc604_long'
make[1]: Leaving directory `/home/blctrl/epics/vxstatsTest/configure'
make -C vxstatsTestApp install
make[1]: Entering directory `/home/blctrl/epics/vxstatsTest/vxstatsTestApp'
make -C src install
make[2]: Entering directory `/home/blctrl/epics/vxstatsTest/vxstatsTestApp/src'
perl /BLC/epics/base/configure/tools/makeMakefile.pl O.linux-x86 ../../..
perl /BLC/epics/base/configure/tools/makeMakefile.pl O.vxWorks-ppc604_long ../../..
mkdir O.Common
make -C O.linux-x86 -f ../Makefile TOP=../../.. T_A=linux-x86 install
make[3]: Entering directory `/home/blctrl/epics/vxstatsTest/vxstatsTestApp/src/O.linux-x86'
make[3]: Leaving directory `/home/blctrl/epics/vxstatsTest/vxstatsTestApp/src/O.linux-x86'
make[3]: Entering directory `/home/blctrl/epics/vxstatsTest/vxstatsTestApp/src/O.linux-x86'
perl /BLC/epics/base/configure/tools/makeIncludeDbd.pl base.dbd xxxSupport.dbd dbSubExample.dbd vxstatsTestHello.dbd vxStats.dbd ../O.Common/vxstatsTestInclude.dbd
Expanding dbd
/BLC/epics/base/bin/linux-x86/dbExpand -I . -I .. -I ../../../dbd -I /BLC/epics/base/dbd -I /BLC/epics/base/../synApps_5_3/support/vxStats/1-7-2e/dbd -o ../O.Common/vxstatsTest.dbd ../O.Common/vxstatsTestInclude.dbd
Installing dbd file ../../../dbd/vxstatsTest.dbd
/BLC/epics/base/bin/linux-x86/dbToRecordtypeH -I . -I .. -I ../../../dbd -I /BLC/epics/base/dbd -I /BLC/epics/base/../synApps_5_3/support/vxStats/1-7-2e/dbd ../xxxRecord.dbd ../O.Common/xxxRecord.h
Installing generated generic include file ../../../include/xxxRecord.h
/usr/bin/gcc -c -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500 -D_X86_ -DUNIX -D_BSD_SOURCE -Dlinux -D_REENTRANT -ansi -O3 -Wall -g -fPIC -I. -I.. -I../../../include/os/Linux -I../../../include -I/BLC/epics/base/include/os/Linux -I/BLC/epics/base/include ../xxxRecord.c
/usr/bin/gcc -c -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500 -D_X86_ -DUNIX -D_BSD_SOURCE -Dlinux -D_REENTRANT -ansi -O3 -Wall -g -fPIC -I. -I.. -I../../../include/os/Linux -I../../../include -I/BLC/epics/base/include/os/Linux -I/BLC/epics/base/include ../devXxxSoft.c
/usr/bin/ar -rc libxxxSupport.a xxxRecord.o devXxxSoft.o
/usr/bin/ranlib libxxxSupport.a
Installing library ../../../lib/linux-x86/libxxxSupport.a
/usr/bin/ranlib ../../../lib/linux-x86/libxxxSupport.a
/usr/bin/g++ -o libxxxSupport.so -shared -fPIC -L/BLC/epics/base/lib/linux-x86/ -Wl,-rpath,/home/blctrl/epics/vxstatsTest/lib/linux-x86 -Wl,-rpath,/BLC/epics/base/lib/linux-x86 xxxRecord.o devXxxSoft.o -lrecIoc -lsoftDevIoc -liocsh -lmiscIoc -lrsrvIoc -ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom -lpthread -lreadline -lcurses -lm -lrt -lgcc
Installing shared library ../../../lib/linux-x86/libxxxSupport.so
perl /BLC/epics/base/bin/linux-x86/registerRecordDeviceDriver.pl ../O.Common/vxstatsTest.dbd vxstatsTest_registerRecordDeviceDriver > temp.cpp
mv temp.cpp vxstatsTest_registerRecordDeviceDriver.cpp
/usr/bin/g++ -c -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500 -D_X86_ -DUNIX -D_BSD_SOURCE -Dlinux -D_REENTRANT -ansi -O3 -Wall -g -I. -I.. -I../../../include/os/Linux -I../../../include -I/BLC/epics/base/include/os/Linux -I/BLC/epics/base/include vxstatsTest_registerRecordDeviceDriver.cpp
/usr/bin/gcc -c -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500 -D_X86_ -DUNIX -D_BSD_SOURCE -Dlinux -D_REENTRANT -ansi -O3 -Wall -g -I. -I.. -I../../../include/os/Linux -I../../../include -I/BLC/epics/base/include/os/Linux -I/BLC/epics/base/include ../dbSubExample.c
/usr/bin/gcc -c -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500 -D_X86_ -DUNIX -D_BSD_SOURCE -Dlinux -D_REENTRANT -ansi -O3 -Wall -g -I. -I.. -I../../../include/os/Linux -I../../../include -I/BLC/epics/base/include/os/Linux -I/BLC/epics/base/include ../vxstatsTestHello.c
/usr/bin/g++ -c -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500 -D_X86_ -DUNIX -D_BSD_SOURCE -Dlinux -D_REENTRANT -ansi -O3 -Wall -g -I. -I.. -I../../../include/os/Linux -I../../../include -I/BLC/epics/base/include/os/Linux -I/BLC/epics/base/include ../vxstatsTestMain.cpp
/usr/bin/g++ -o vxstatsTest -L../../../lib/linux-x86/ -L/BLC/epics/base/lib/linux-x86/ -Wl,-rpath,/home/blctrl/epics/vxstatsTest/lib/linux-x86 -Wl,-rpath,/BLC/epics/base/lib/linux-x86 vxstatsTest_registerRecordDeviceDriver.o dbSubExample.o vxstatsTestHello.o vxstatsTestMain.o -lxxxSupport -lrecIoc -lsoftDevIoc -liocsh -lmiscIoc -lrsrvIoc -ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom
make[3]: Leaving directory `/home/blctrl/epics/vxstatsTest/vxstatsTestApp/src/O.linux-x86'
make[2]: Leaving directory `/home/blctrl/epics/vxstatsTest/vxstatsTestApp/src'
make[1]: Leaving directory `/home/blctrl/epics/vxstatsTest/vxstatsTestApp'
vxstatsTest_registerRecordDeviceDriver.o(.text+0x40): In function `vxstatsTest_registerRecordDeviceDriver':
/home/blctrl/epics/vxstatsTest/vxstatsTestApp/src/O.linux-x86/vxstatsTest_registerRecordDeviceDriver.cpp:258: undefined reference to `pvar_func_registerReboot'
vxstatsTest_registerRecordDeviceDriver.o(.text+0xa7): In function `registerRecordDeviceDriverCallFunc':
/home/blctrl/epics/vxstatsTest/vxstatsTestApp/src/O.linux-x86/vxstatsTest_registerRecordDeviceDriver.cpp:258: undefined reference to `pvar_func_registerReboot'
vxstatsTest_registerRecordDeviceDriver.o(.text+0x32d): In function `global constructors keyed to vxstatsTest_registerRecordDeviceDriver':
/home/blctrl/epics/vxstatsTest/vxstatsTestApp/src/O.linux-x86/vxstatsTest_registerRecordDeviceDriver.cpp:234: undefined reference to `pvar_dset_devAiStats'
vxstatsTest_registerRecordDeviceDriver.o(.text+0x33d):/home/blctrl/epics/vxstatsTest/vxstatsTestApp/src/O.linux-x86/vxstatsTest_registerRecordDeviceDriver.cpp:234: undefined reference to `pvar_dset_devAiClusts'
vxstatsTest_registerRecordDeviceDriver.o(.text+0x365):/home/blctrl/epics/vxstatsTest/vxstatsTestApp/src/O.linux-x86/vxstatsTest_registerRecordDeviceDriver.cpp:234: undefined reference to `pvar_dset_devAoStats'
vxstatsTest_registerRecordDeviceDriver.o(.text+0x475):/home/blctrl/epics/vxstatsTest/vxstatsTestApp/src/O.linux-x86/vxstatsTest_registerRecordDeviceDriver.cpp:234: undefined reference to `pvar_dset_devStringinStats'
collect2: ld returned 1 exit status
make[3]: *** [vxstatsTest] Error 1
make[2]: *** [install.linux-x86] Error 2
make[1]: *** [src.install] Error 2
make: *** [vxstatsTestApp.install] Error 2
Mi Qingru
----- Original Message -----
From: "Mark Rivers" <[email protected]>
To: "Mi Qingru" <[email protected]>; "epics tech-talk" <[email protected]>
Sent: Thursday, February 12, 2009 9:02 PM
Subject: RE:
It looks to me like maybe that error is happening when EPICS is building the IOC for you host architecture, not for vxWorks. You have told it to use the vxStats library for vxWorks, but not for your host (Linux?).
Please send much more of the output just before the errors so we can see just what is being done at the time you get the errors.
Mark
________________________________
From: Mi Qingru [mailto:[email protected]]
Sent: Wed 2/11/2009 11:28 PM
To: Mark Rivers; epics tech-talk
Subject: Re:
Yes, I did.
----- Original Message -----
From: "Mark Rivers" <[email protected]>
To: "Mi Qingru" <[email protected]>; "epics tech-talk" <[email protected]>
Sent: Wednesday, February 11, 2009 9:28 PM
Subject: RE:
After making those changes to RELEASE and Makefile did you do "make clean" before doing "make"?
________________________________
From: [email protected] on behalf of Mi Qingru
Sent: Wed 2/11/2009 2:27 AM
To: epics tech-talk
Subject:
Hello,
I make an application , and add vxStats of synApps to it.
-------configure/RELEASE-------------
VX_STATS=$(EPICS_SYNAPPS)/support/vxStats/1-7-2e
-------testApp/src/Makefile-------------
test_DBD += vxStats.dbd
test_LIBS_vxWorks += vxStats
But when make, there are a few errors:
test_registerRecordDeviceDriver.cpp: undefined reference to 'pvar_func_registerReboot'
test_registerRecordDeviceDriver.cpp: undefined reference to 'pvar_dset_devAiStats'
test_registerRecordDeviceDriver.cpp: undefined reference to 'pvar_dset_devAiClusts'
test_registerRecordDeviceDriver.cpp: undefined reference to 'pvar_dset_devAoStats'
test_registerRecordDeviceDriver.cpp: undefined reference to 'pvar_dset_devStringinStats'
How to resolve the problem?
Thanks a lot!
Mi QingRu
__________ Information from ESET Smart Security, version of virus signature database 3846 (20090211) __________
The message was checked by ESET Smart Security.
http://www.eset.com <http://www.eset.com/> <http://www.eset.com/>
__________ Information from ESET Smart Security, version of virus signature database 3853 (20090214) __________
The message was checked by ESET Smart Security.
http://www.eset.com <http://www.eset.com/>
- Replies:
- Re: Add vxstats to an application Mi Qingru
- References:
- [no subject] Mi Qingru
- RE: Mark Rivers
- Re: Mi Qingru
- RE: Mark Rivers
- Re: Add vxstats to an application Mi Qingru
- Navigate by Date:
- Prev:
Re: Add vxstats to an application Mi Qingru
- Next:
Re: Add vxstats to an application Mi Qingru
- 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: Add vxstats to an application Mi Qingru
- Next:
Re: Add vxstats to an application Mi Qingru
- 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