From: Dirk Z. <dir...@ps...> - 2012-03-27 15:39:22
|
I found a fix: In CONFIG_SITE I find this in order to install into the pv subdirectory: INSTALL_INCLUDE = $(INSTALL_LOCATION)/include/pv USR_INCLUDES += -I $(INSTALL_LOCATION)/include Unfortunately, the EPICS build system adds this location and all source locations to the include search path. Here we neither need it nor want it. I added the following two lines to CONFIG_SITE to clean the search path: INSTALL_INCLUDES = SRC_INCLUDES = Dirk Dirk Zimoch wrote: > Hi > > pvData contains a header file called "version.h". This conflicts with > the vxWorks header file "version.h" and makes compilation on vxWorks > impossible. > > Even though the include file is installed to a pv subrirectory and only > used with a "qualified name" like #include <pv/version.h>, It is found > by vxWorks which looks for its own <version.h>. > > Why that? The EPICS make rules set up the search path like this: > > -I. -I../O.Common -I. -I.. -I../../pvAccessApp//ca > -I../../pvAccessApp//utils -I../../pvAccessApp//client > -I../../pvAccessApp//factory -I../../pvAccessApp//remote > -I../../pvAccessApp//remoteClient -I../../pvAccessApp//server > -I../../include/pv/os/vxWorks -I../../include/pv > -I/afs/psi.ch/user/z/zimoch/cvs/EPICSv4-1.0-BETA/pvDataCPP/include > -I/usr/local/epics/base/include/os/vxWorks > -I/usr/local/epics/base/include -I ../../include > -I/afs/psi.ch/group/8431/dirk/boost_1_49_0 > -I/afs/psi.ch/project/vxworks/WindRiverGPP3.7/vxworks-6.7/target/h > -I/afs/psi.ch/project/vxworks/WindRiverGPP3.7/vxworks-6.7/target/h/wrn/coreip > > > First of all, the vxWorks include paths come last. > Second, ../../include/pv is used, not only ../../include. > This makes the qualified #include <pv/version.h> pointless. > > > So either the EPICS make rules have to be modified not to set up the > include path like this, or we need qualified file names like pvVersion.h > > Dirk > |