You are doing things differently than we normally do. You are compiling the motor files (motorRecord.cc, devMAXv.cc, etc.) directly as part of your application with the lines like:
mx_SRCS_vxWorks += motorRecord.cc motordevCom.cc motordrvCom.cc
but you are also including those same routines again via external libraries with lines like:
mx_LIBS += motor
mx_LIBS += SoftMotor
As noted yesterday you are not including oms as an external library, which you should.
I suggest that you do not compile the motor or oms code again as part of your application, but rather just include the libraries from the motor module.
This works fine for me under vxWorks with the vxWorks shell, I do not have problems with C++ name mangling and MAXvSetup works with no problems.
Mark
________________________________
From: [email protected] on behalf of ???
Sent: Mon 1/12/2009 5:42 AM
To: [email protected]
Subject: MAXvSetup is an undefined symbol
Hello,everyone.
I have two application of oms motor and hytec adc, but i only have a VME crate. So i need to merget the two application to one ioc. The oms motor application from
synApps and hytec 8401 work well respectively. So i use the makeBaseApp.pl to produce a new application and revise the makefile, and copy the source file to the
corresponding directory. The compile is ok, i can get the munch and st.cmd files.
When download st.cmd to the vme, there are will problems. It is said the MAXvSetup is an undefined symbol. It is very strange. I insert the hytec8001 and 8401 in the
first and the VME in the third.
Please give me some advice and idea.
Thanks.
----------------------Makefile-----------------------------------------
TOP=../..
include $(TOP)/configure/CONFIG
#----------------------------------------
# ADD MACRO DEFINITIONS AFTER THIS LINE
#=============================
#=============================
# build an ioc application
PROD_IOC_vxWorks = mx
DBD += mx.dbd
# mx.dbd will be made up from these files:
mx_DBD += base.dbd
#include definitions for any other support applications needed
#mx_DBD += xxx.dbd
mx_DBD += transformRecord.dbd
mx_DBD += oms.dbd
mx_DBD += motorSupport.dbd
mx_DBD += motorRecord.dbd
mx_DBD += devOms.dbd
mx_DBD += devSoftMotor.dbd
mx_DBD += PSU0.dbd
mx_DBD += sscan.dbd
# <name>_registerRecordDeviceDriver.cpp will be created from <name>.dbd
mx_SRCS_vxWorks += mx_registerRecordDeviceDriver.cpp
mx_SRCS_DEFAULT += mxMain.cpp
mx_SRCS_vxWorks += -nil-
mx_SRCS_vxWorks += devOms.cc drvOms.cc
mx_SRCS_vxWorks += devOms58.cc drvOms58.cc
mx_SRCS_vxWorks += devMAXv.cc drvMAXv.cc
mx_SRCS_vxWorks += devOmsCom.cc
mx_SRCS_vxWorks += devSoft.cc devSoftAux.cc
mx_SRCS_vxWorks += motorRecord.cc motordevCom.cc motordrvCom.cc
#The following adds support from base/src/vxWorks
mx_OBJS_vxWorks += $(EPICS_BASE_BIN)/vxComLibrary
#add a definition for each support application used by this application
#mx_LIBS += xxx
#NOTES:
# 1)It is not possible to build sncExample both as a component of mx
# and standalone. You must choose only one.
# 2)To build sncExample SNCSEQ must be defined in <top>/configure/RELEASE
#The following builds sncExample as a component of mx
#mx_SRCS += sncExample.stt
#mx_LIBS += seq pv
mx_LIBS += motor
mx_LIBS += SoftMotor
mx_LIBS += Ipac
mx_LIBS += Hy8402ip
mx_LIBS += Hy8401ip
mx_LIBS += calc
mx_LIBS += sscan
mx_LIBS_vxWorks += $(EPICS_BASE_IOC_LIBS)
#The following builds sncExample as a standalone application
#PROD_HOST += sncExample
#sncExample_SNCFLAGS += +m
#sncExample_SRCS += sncExample.stt
#sncExample_LIBS += seq pv
#sncExample_LIBS += $(EPICS_BASE_HOST_LIBS)
#===========================
include $(TOP)/configure/RULES
#----------------------------------------
# ADD RULES AFTER THIS LINE
-----------------------------Error mesg--------------------------------
ld < mx.munch
sysAtReboot not found. epicsExit will not be called by reboot.
value = 516036768 = 0x1ec218a0
## Register all support components
cd top
value = 0 = 0x0
dbLoadDatabase("dbd/mx.dbd",0,0)
value = 0 = 0x0
mx_registerRecordDeviceDriver(pdbbase)
value = 0 = 0x0
## motor
dbLoadRecords("db/att.db")
value = 0 = 0x0
MAXvSetup(1,16,0xF000,180,6,10)
undefined symbol: MAXvSetup
???
===================================================
No.239 Zhangheng Road
PuDong District
Shanghai Institute of Applied Physics CAS
Shanghai, China
Tel: +86-21-33933256 Fax: +86-21-33933031
- Replies:
- 答复: MAXvSetup is an undefined symbol 汪启胜
- References:
- MAXvSetup is an undefined symbol 汪启胜
- Navigate by Date:
- Prev:
Re: PMAC IP and motor records Dirk Zimoch
- Next:
Re: Vdct and autosave's info field Tim Mooney
- 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:
答复: MAXvSetup is an undefined symbol 汪启胜
- Next:
答复: MAXvSetup is an undefined symbol 汪启胜
- 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
|