Hi,
for loading the Ogre plugins under mac, I replaced the following line:
pluginStr = pathStr + "/" + pluginNode->GetValue();
to
pluginStr = pluginNode->GetValue();
in OgreAdaptor.cc (line 310)
and in the world files:
<plugins path="/usr/local/lib/OGRE">
<plugin>RenderSystem_GL</plugin>
<plugin>Plugin_ParticleFX</plugin>
<plugin>Plugin_BSPSceneManager</plugin>
<plugin>Plugin_OctreeSceneManager</plugin>
</plugins>
Let have a look if it also work for you.
Regards
David
Le 15 juil. 07 à 20:52, Nathan Michael a écrit :
Hi Kevin,
Read your email from this morning and thought I would give it a try.
I exported the source:
>> svn export https://playerstage.svn.sourceforge.net/svnroot/
playerstage/code/gazebo gazebo
>> cd gazebo
>> patch -p0 < gazebo.patch # Where the patch is attached (and
should be dropped in the directory).
I also downloaded the OSX Ogre3D SDK (v 1.4.2) and installed it.
I had to change a lot of includes to correctly work with
frameworks. To make this change reflected in the patch, I ran the
following:
>> for i in $(find . -not -name "*svn*" -exec grep -q "Ogre*.h>"
'{}' \; -print); do sed -e '[EMAIL PROTECTED] <[EMAIL PROTECTED] <Ogre/[EMAIL PROTECTED]' $i > $i.tmp;
mv $i.tmp $i; done
>> for i in $(find . -not -name "*svn*" -exec grep -q "<python2.4/"
'{}' \; -print); do sed -e '[EMAIL PROTECTED] <[EMAIL PROTECTED] <[EMAIL PROTECTED]' $i >
$i.tmp; mv $i.tmp $i; done
These commands replace certain includes that don't work with
frameworks so that they do work.
I installed boost_python. I use MacPorts and the Portfile
explicitly states not to build boost_python, so I changed the line
for configure.args to just read:
configure.args --without-icu
and reinstall.
In SConstruct, you'll see that I included environment variables and
eliminated some pkg-config requests (and checks). I did this so
that things would work with frameworks. I also had to add my info
for ode since my ode-config spits out ode_path/ode and the source
all refers to <ode/header>. I exported the following:
>> export CPATH=$CPATH:/Developer/Ogre/Dependencies/include/OIS:/
ode_path/include
It seems like both <OIS*.h> and <OIS/OIS*.> are referenced (I may
be wrong here) so I include both (above and below). I also made a
pkg-config file OIS.pc which reads:
prefix=/Developer/Ogre/Dependencies
Name: OIS
Description: Object oriented input system
Version: 1.0RC1
Requires:
Libs: -L${prefix}/lib/Release -lois
Cflags: -I${prefix}/include
In the SConstruct file I also added the frameworks that were required.
I also made some changes to underlying SConscript files to include
objects. I ran into all of the bugs you mentioned and found that
including the objects fixed some. The other problem was that
SConscript for player wasn't including the Graphics3D interface
file. It seems like the Camera.hh file was renamed to
CameraSensor.hh which threw an error. I wasn't able to get all of
the sensors compiled. I'll keep working on it.
I think that was it. There may be a few things sneaking in the
patch that I forgot to mention but they should be obvious. Almost
forgot, I added a debug flag to deal with the semum redefine.
But ... It still doesn't work, it compiles but doesn't work. I can
run gazebo but am unable to load the plugins. After looking at the
Ogre source a bit it seems like they did some fancy stuff to handle
the plugins in OSX which differ from how Nate has the plugin
loading coded. I'll take a look at some point unless you can hack
something up and beat me to it. It seems like it should be pretty
straight forward, more or less copy and paste and shouldn't be a
hard fix, just needs the attention.
As a side, I gave a go at trying to compile Ogre and CEGUI from
source in a more "Linux" style way (no frameworks, just good old
shared libraries, pkg-config, etc.). It took a bit of coaxing but I
was able to get everything compiled. They designed everything to
work with XCode which I don't use, so I gave a go at using the GNU
tools. It was a pain, lots of macro tweaking and source changes
(especially in CEGUI) but it seems like it compiled. I was able to
run some of the tests for the distributions. With that said,
anybody trying to use the svn gazebo on OSX should download the pre-
compiled binaries and go that route. It a lot easier to compile.
Good luck,
Nate Michael
<gazebo_osx.patch>
On Jul 15, 2007, at 12:27 PM, Kevin Barry wrote:
Okay I got past my previous problem by modifying libgazebo/
SConstrict with:
sharedLib = env.SharedLibrary('gazebo', sharedObjs + sources)
staticLib = env.StaticLibrary('gazebo', staticObjs + sources)
(After adding sharedObjs and StaticObjs to the Import line, and
modifying my OIS.pc to use the .o files rather than the libois.a)
So now 'gazebo' builds, but I get an error on player:
g++ -o player/libgazeboplugin.dylib -dynamiclib player/
GazeboDriver.os player/GazeboClient.os player/GazeboInterface.os
player/GazeboTime.os player/SimulationInterface.os player/
Position2dInterface.os player/LaserInterface.os player/
CameraInterface.os server/physics/ode/ODEPhysics.os server/physics/
BallJoint.os server/physics/Body.os server/physics/BoxGeom.os
server/physics/ContactParams.os server/physics/CylinderGeom.os
server/physics/Geom.os server/physics/Hinge2Joint.os server/
physics/HingeJoint.os server/physics/Joint.os server/physics/
PhysicsEngine.os server/physics/PlaneGeom.os server/physics/
SliderJoint.os server/physics/SphereGeom.os server/physics/
UniversalJoint.os server/physics/dCylinder.os server/physics/
RayGeom.os server/rendering/OgreAdaptor.os server/rendering/
OgreFrameListener.os server/rendering/OgreDynamicRenderable.os
server/rendering/OgreDynamicLines.os server/rendering/
OgreSimpleShape.os server/rendering/OgreHUD.os server/sensors/
camera/CameraSensor.os server/sensors/camera/CameraManager.os
server/sensors/ray/RaySensor.os server/sensors/Sensor.os server/
sensors/SensorFactory.os server/models/LightSource/LightSource.os
server/models/Model.os server/models/ModelFactory.os server/
controllers/position2d/pioneer2dx/Pioneer2dx_Position2d.os server/
controllers/laser/sicklms200/SickLMS200_Laser.os server/
controllers/camera/generic/Generic_Camera.os server/controllers/
Controller.os server/controllers/ControllerFactory.os server/
main.os server/Vector3.os server/Quatern.os server/Pose3d.os
server/World.os server/XMLConfig.os server/Time.os server/
Entity.os server/GazeboError.os server/UpdateParams.os server/
GazeboMessage.os -Llibgazebo -L/Library/Frameworks/Ogre.framework -
L/opt/local/lib -L/usr/local/lib -lgazebo -lboost_python -lOgre -
lxml2 -lz -liconv -lm -lplayercore -lltdl -lpthread -lplayerxdr -
lplayererror -lode /Users/gorn/Desktop/Downloads/ois- 1.0RC1/Mac/
XCode-2.2/build/oisStatic.build/Development/oisStatic.build/
Objects-normal/i386/OISEffect.o /Users/gorn/Desktop/Downloads/
ois-1.0RC1/Mac/XCode-2.2/build/oisStatic.build/Development/
oisStatic.build/Objects-normal/i386/OISForceFeedback.o /Users/gorn/
Desktop/Downloads/ois- 1.0RC1/Mac/XCode-2.2/build/oisStatic.build/
Development/oisStatic.build/Objects-normal/i386/OISInputManager.o /
Users/gorn/Desktop/Downloads/ois-1.0RC1/Mac/XCode-2.2/build/
oisStatic.build/Development/oisStatic.build/Objects-normal/i386/
OISKeyboard.o /Users/gorn/Desktop/Downloads/ois- 1.0RC1/Mac/
XCode-2.2/build/oisStatic.build/Development/oisStatic.build/
Objects-normal/i386/OISObject.o /Users/gorn/Desktop/Downloads/
ois-1.0RC1/Mac/XCode-2.2/build/oisStatic.build/Development/
oisStatic.build/Objects-normal/i386/MacHelpers.o /Users/gorn/
Desktop/Downloads/ois- 1.0RC1/Mac/XCode-2.2/build/oisStatic.build/
Development/oisStatic.build/Objects-normal/i386/MacInputManager.o /
Users/gorn/Desktop/Downloads/ois-1.0RC1/Mac/XCode-2.2/build/
oisStatic.build/Development/oisStatic.build/Objects-normal/i386/
MacKeyboard.o /Users/gorn/Desktop/Downloads/ois- 1.0RC1/Mac/
XCode-2.2/build/oisStatic.build/Development/oisStatic.build/
Objects-normal/i386/MacMouse.o -lwx_macud-2.5 -lpython -framework
QuickTime -framework IOKit -framework Carbon -framework Cocoa -
framework System
ld: Undefined symbols:
__ZN6gazebo19Graphics3dInterfaceC1E14player_devaddrPNS_12GazeboDriver
EP10ConfigFilei
/usr/bin/libtool: internal link edit command failed
scons: *** [player/libgazeboplugin.dylib] Error 1
scons: building terminated because of errors.
After I get through all this I'll document it and see if we can
make it a bit more straightforward to build on mac
On 7/15/07, Kevin Barry < [EMAIL PROTECTED]> wrote:
Okay I'm running on a Mac which requires a bit of work to get
gazebo to even try to build (If anyone else is trying this you'll
have to create your own pkg-config entries for Ogre and OIS).
The only unresolved problem is at the very end of this, so you
probably can just read that, however I included the whole process
I went through in case I caused the problem fixing a different one.
Anyway so I believe my build environment is setup mostly correct,
on a fresh svn checkout I get:
senior-design-1s-computer:~/gazebo/gazebo_svn_virgin root# scons
install
scons: Reading SConscript files ...
/bin/sh: line 1: python-config: command not found
Unable to parse config [python-config]
senior-design-1s-computer:~/gazebo/gazebo_svn_virgin root#
I believe this is related to boost, but just to get things started
I modified SConscript to call "echo -lpython" in place of python-
config --libs, now:
senior-design-1s-computer:~/gazebo/gazebo_svn_virgin root# scons
install
scons: Reading SConscript files ...
scons: done reading SConscript files.
scons: Building targets ...
g++ -o server/physics/ode/ODEPhysics.o -c -pthread -pipe -I. -
Iserver -Iserver/models -Ilibgazebo -Iserver/rendering -Iserver/
sensors -Iserver/sensors/camera -Iserver/sensors/ray -Iserver/
physics -Iserver/physics/ode -Iserver/controllers -Iserver/
controllers/position2d -Iserver/controllers/position2d/pioneer2dx -
I/usr/include/python2.4 -I/Library/Frameworks/Ogre.framework/
Headers -I/opt/local/include/libxml2 -I/opt/local/include -I/usr/
local/include/player- 2.0 -I/usr/local/include -I/usr/local/
include/OIS server/physics/ode/ODEPhysics.cc
i686-apple-darwin8-g++-4.0.1: unrecognized option '-pthread'
... # all looking good, the pthread thing is just a warning, it's
okay.
... # until:
g++ -o libgazebo/Server.o -c -pthread -pipe -I. -Iserver -Iserver/
models -Ilibgazebo -Iserver/rendering -Iserver/sensors -Iserver/
sensors/camera -Iserver/sensors/ray -Iserver/physics -Iserver/
physics/ode -Iserver/controllers -Iserver/controllers/position2d -
Iserver/controllers/position2d/pioneer2dx -I/usr/include/python2.4
-I/Library/Frameworks/Ogre.framework/Headers -I/opt/local/include/
libxml2 -I/opt/local/include -I/usr/local/include/player- 2.0 -I/
usr/local/include -I/usr/local/include/OIS libgazebo/Server.cc
i686-apple-darwin8-g++-4.0.1: unrecognized option '-pthread'
libgazebo/Server.cc:47: error: redefinition of 'union semun'
/usr/include/sys/sem.h:184: error: previous definition of 'union
semun'
The declarations in sem.h and Server.cc are the same, so I comment
it out of Server.cc, continue building:
g++ -o gazebo server/physics/ode/ODEPhysics.o server/physics/
BallJoint.o server/physics/Body.o server/physics/BoxGeom.o server/
physics/ContactParams.o server/physics/CylinderGeom.o server/
physics/Geom.o server/physics/Hinge2Joint.o server/physics/
HingeJoint.o server/physics/Joint.o server/physics/PhysicsEngine.o
server/physics/PlaneGeom.o server/physics/SliderJoint.o server/
physics/SphereGeom.o server/physics/UniversalJoint.o server/
physics/dCylinder.o server/physics/RayGeom.o server/rendering/
OgreAdaptor.o server/rendering/OgreFrameListener.o server/
rendering/OgreDynamicRenderable.o server/rendering/
OgreDynamicLines.o server/rendering/OgreSimpleShape.o server/
rendering/OgreHUD.o server/sensors/camera/CameraSensor.o server/
sensors/camera/CameraManager.o server/sensors/ray/RaySensor.o
server/sensors/Sensor.o server/sensors/SensorFactory.o server/
models/LightSource/LightSource.o server/models/Model.o server/
models/ModelFactory.o server/controllers/position2d/pioneer2dx/
Pioneer2dx_Position2d.o server/controllers/laser/sicklms200/
SickLMS200_Laser.o server/controllers/camera/generic/
Generic_Camera.o server/controllers/Controller.o server/
controllers/ControllerFactory.o server/main.o server/Vector3.o
server/Quatern.o server/Pose3d.o server/World.o server/XMLConfig.o
server/Time.o server/Entity.o server/GazeboError.o server/
UpdateParams.o server/GazeboMessage.o -Llibgazebo -L/Library/
Frameworks/Ogre.framework -L/opt/local/lib -L/usr/local/lib -
lgazebo -lboost_python -lOgre -lxml2 -lz -liconv -lm -lplayercore -
lltdl -lpthread -lplayerxdr -lplayererror -lode -lois -lpython
/usr/bin/ld: Undefined symbols:
_ActiveNonFloatingWindow
_DisposeEventHandlerUPP
_GetEventParameter
_GetEventTime
_GetWindowEventTarget
_InstallEventHandler
_NewEventHandlerUPP
_RemoveEventHandler
_CallNextEventHandler
gazebo::GazeboError::GazeboError(char const*, int,
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >)referenced from libgazebo expected to be
defined in libgazebo
gazebo::GazeboError::~GazeboError()referenced from libgazebo
expected to be defined in libgazebo
typeinfo for gazebo::GazeboErrorreferenced from libgazebo expected
to be defined in libgazebo
gazebo::GazeboMessage::Msg(int) referenced from libgazebo
expected to be defined in libgazebo
gazebo::GazeboMessage::Instance() referenced from libgazebo
expected to be defined in libgazebo
collect2: ld returned 1 exit status
scons: *** [gazebo] Error 1
scons: building terminated because of errors.
The first set seems to be from wxwindows, so I add wx-config2 --
cflags --libs to SConstruct with the other pkg-config lines,
continue building, sure enough the first errors are eliminated but
the second ones remain.
scons install
...
g++ -o gazebo server/physics/ode/ODEPhysics.o server/physics/
BallJoint.o server/physics/Body.o server/physics/BoxGeom.o server/
physics/ContactParams.o server/physics/CylinderGeom.o server/
physics/Geom.o server/physics/Hinge2Joint.o server/physics/
HingeJoint.o server/physics/Joint.o server/physics/PhysicsEngine.o
server/physics/PlaneGeom.o server/physics/SliderJoint.o server/
physics/SphereGeom.o server/physics/UniversalJoint.o server/
physics/dCylinder.o server/physics/RayGeom.o server/rendering/
OgreAdaptor.o server/rendering/OgreFrameListener.o server/
rendering/OgreDynamicRenderable.o server/rendering/
OgreDynamicLines.o server/rendering/OgreSimpleShape.o server/
rendering/OgreHUD.o server/sensors/camera/CameraSensor.o server/
sensors/camera/CameraManager.o server/sensors/ray/RaySensor.o
server/sensors/Sensor.o server/sensors/SensorFactory.o server/
models/LightSource/LightSource.o server/models/Model.o server/
models/ModelFactory.o server/controllers/position2d/pioneer2dx/
Pioneer2dx_Position2d.o server/controllers/laser/sicklms200/
SickLMS200_Laser.o server/controllers/camera/generic/
Generic_Camera.o server/controllers/Controller.o server/
controllers/ControllerFactory.o server/main.o server/Vector3.o
server/Quatern.o server/Pose3d.o server/World.o server/XMLConfig.o
server/Time.o server/Entity.o server/GazeboError.o server/
UpdateParams.o server/GazeboMessage.o -Llibgazebo -L/Library/
Frameworks/Ogre.framework -L/opt/local/lib -L/usr/local/lib -
lgazebo -lboost_python -lOgre -lxml2 -lz -liconv -lm -lplayercore -
lltdl -lpthread -lplayerxdr -lplayererror -lode -lois -lpython -
lwx_macud- 2.5 -framework QuickTime -framework IOKit -framework
Carbon -framework Cocoa -framework System
/usr/bin/ld: Undefined symbols:
gazebo::GazeboError::GazeboError(char const*, int,
std::basic_string<char, std::char_traits<char>,
std::allocator<char> >)referenced from libgazebo expected to be
defined in libgazebo
gazebo::GazeboError::~GazeboError()referenced from libgazebo
expected to be defined in libgazebo
typeinfo for gazebo::GazeboErrorreferenced from libgazebo expected
to be defined in libgazebo
gazebo::GazeboMessage::Msg(int) referenced from libgazebo
expected to be defined in libgazebo
gazebo::GazeboMessage::Instance() referenced from libgazebo
expected to be defined in libgazebo
collect2: ld returned 1 exit status
scons: *** [gazebo] Error 1
scons: building terminated because of errors.
Now server/GazeboError.o is mentioned in the g++ line, I've been
trying different things but I'm really at a loss here. Any ideas?
Thanks,
-Kevin
---------------------------------------------------------------------
----
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Playerstage-gazebo mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo
----------------------------------------------------------------------
---
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Playerstage-gazebo mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Playerstage-gazebo mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-gazebo