Re: OpenCASCADE and Salomé
On Tue, 2008-01-08 at 18:34 +0100, Alexandre Fayolle wrote:
> On Tue, Jan 08, 2008 at 10:06:35AM -0500, Adam C Powell IV wrote:
> > D'oh! Brown bag time: -3 does not include the header files! I had put
> > the headers in their own directory and then forgot to add it to .files.
> > BTW, there's no such need for libs: I did a zgrep of all of the OCC lib
> > names through Contents-amd64.gz and there are no conflicts, even with
> > such generic names as libXmlPlugin and libBinPlugin.
> >
> > I've just uploaded -4 sources and am building amd64 binaries; should be
> > ready in a few hours.
>
> Hi,
>
> I tried building -3 with pbuilder, and it failed with
> /usr/bin/ld: cannot find -lGL
>
> This looks like a missing build dependency on libmesa-gl1-dev
Thank you! I'll fix that and a couple of other things and put up -5
within 8 hours if all goes well. Hopefully that should be ready to
upload into Debian, so I'm building with -sa.
Meanwhile, there's an earlier build error in Salomé on unstable, so it
doesn't even get to the _STL:: vs. std:: issue. It dies when trying to
compile the first _i file:
g++ "-DPACKAGE_NAME=\"Salome2 Project\"" -DPACKAGE_TARNAME=\"salome\" -DPACKAGE_VERSION=\"3.2.5\" "-DPACKAGE_STRING=\"Salome2 Project 3.2.5\"" -DPACKAGE_BUGREPORT=\"gboulant@CS\" -DPACKAGE=\"salome\" -DVERSION=\"3.2.5\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_LIBDL=1 -DHAVE_LIBRT=1 -DHAVE_LIBM=1 -DHAVE_NAMESPACES= -DHAVE_PTHREAD=1 -D__x86__=1 -D__linux__=1 -D__OSVERSION__=1 -DOMNIORB=1 -DCORBA_HAVE_POA=1 -DCORBA_ORB_INIT_HAVE_3_ARGS=1 -DCORBA_ORB_INIT_THIRD_ARG=\"omniORB\" -DRM=\"/bin/rm\" -DSH=\"/bin/sh\" -DCP=\"/bin/cp\" -DRSH=\"/usr/bin/rsh\" -DRCP=\"/usr/bin/rcp\" -DSSH=\"/usr/bin/ssh\" -DSCP=\"/usr/bin/scp\" -I. -I. -I./../Basics -I./../SALOMELocalTrace -I../../salome_adm/unix -I../../idl -DOMNIORB_VERSION=4 -D__x86__ -D__linux__ -DCOMP_CORBA_DOUBLE -DCOMP_CORBA_LONG -I/usr/include -I/usr/include/omniORB4 -I/usr/include/COS -DHAVE_MPI2 -DHAVE_SOCKET -m64 -D_OCC64 -g -D_DEBUG_ -Wno-deprecated -Wparentheses -Wreturn-type -Wunused -pthread -MT libSalomeGenericObj_la-SALOME_GenericObj_i.lo -MD -MP -MF .deps/libSalomeGenericObj_la-SALOME_GenericObj_i.Tpo -c SALOME_GenericObj_i.cc -fPIC -DPIC -o .libs/libSalomeGenericObj_la-SALOME_GenericObj_i.o
SALOME_GenericObj_i.cc: In constructor 'SALOME::GenericObj_i::GenericObj_i(PortableServer::POA*)':
SALOME_GenericObj_i.cc:45: error: '_default_POA' is not a member of 'PortableServer::RefCountServantBase'
make[2]: *** [libSalomeGenericObj_la-SALOME_GenericObj_i.lo] Error 1
make[2]: Leaving directory `/home/hazelsct/salome-3.2.6/KERNEL_SRC_3.2.6/src/GenericObj'
I've attached the .idl and _i.cc files. Could it be possible that
omniorb4 changed its IDL format and/or implementation interface between
4.0.6 and 4.1.1? (It still compiles just fine in testing, which has
4.0.6.) That doesn't seem right, those things should be frozen in the
CORBA standard, right? What needs to change to work with 4.1.1?
Thanks,
-Adam
--
GPG fingerprint: D54D 1AEE B11C CE9B A02B C5DD 526F 01E8 564E E4B6
Engineering consulting with open source tools
http://www.opennovation.com/
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
//
//
// File : SALOME_Component.idl
// Author : Alexey Petrov, OPEN CASCADE
// $Header: /home/server/cvs/KERNEL/KERNEL_SRC/idl/SALOME_GenericObj.idl,v 1.5 2006/06/01 11:15:15 jfa Exp $
#ifndef _SALOME_GENERICOBJ_IDL_
#define _SALOME_GENERICOBJ_IDL_
/*!
This is a package of interfaces used for providing of common bechavior
of SALOME transient CORBA objects in %SALOME application.
*/
module SALOME{
interface GenericObj{
/*! Increase the reference count (mark as used by another object).*/
void Register();
/*! Decrease the reference count (release by another object).*/
void Destroy();
};
};
#endif
// SALOME_GenericObj_i_CC
//
// Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
//
// File : SALOME_GenericObj_i.cc
// Author : Alexey PETROV
// Module : SALOME
#include "SALOME_GenericObj_i.hh"
#include "utilities.h"
#ifdef _DEBUG_
static int MYDEBUG = 0;
#else
static int MYDEBUG = 0;
#endif
using namespace SALOME;
using namespace std;
GenericObj_i::GenericObj_i(PortableServer::POA_ptr thePOA): myRefCounter(1){
if(MYDEBUG)
MESSAGE("GenericObj_i::GenericObj_i() - this = "<<this<<
"; CORBA::is_nil(thePOA) = "<<CORBA::is_nil(thePOA));
if(CORBA::is_nil(thePOA))
#ifndef WNT
myPOA = PortableServer::RefCountServantBase::_default_POA();
#else
myPOA = RefCountServantBase::_default_POA();
#endif
else
myPOA = PortableServer::POA::_duplicate(thePOA);
}
PortableServer::POA_ptr GenericObj_i::_default_POA(){
return PortableServer::POA::_duplicate(myPOA);
}
void GenericObj_i::Register(){
if(MYDEBUG)
MESSAGE("GenericObj_i::Register "<<this<<"; myRefCounter = "<<myRefCounter)
++myRefCounter;
}
void GenericObj_i::Destroy(){
if(MYDEBUG)
MESSAGE("GenericObj_i::Destroy "<<this<<"; myRefCounter = "<<myRefCounter)
if(--myRefCounter <= 0){
PortableServer::ObjectId_var anObjectId = myPOA->servant_to_id(this);
myPOA->deactivate_object(anObjectId.in());
_remove_ref();
}
}
Reply to: