Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cannot compile trajopt #20

Open
k-maheshkumar opened this issue Sep 14, 2017 · 23 comments
Open

cannot compile trajopt #20

k-maheshkumar opened this issue Sep 14, 2017 · 23 comments

Comments

@k-maheshkumar
Copy link

k-maheshkumar commented Sep 14, 2017

I couldn't build the package successfully. I get the following error,
../../../lib/libosgviewer.so: undefined reference to osgGA::EventHandler::event(osg::NodeVisitor*, osg::Drawable*)' ../../../lib/libosgviewer.so: undefined reference to typeinfo for osgGA::EventHandler'
../../../lib/libosgviewer.so: undefined reference to virtual thunk to osg::Drawable::EventCallback::run(osg::Object*, osg::Object*)' ../../../lib/libosgviewer.so: undefined reference to osgGA::EventHandler::handle(osgGA::Event*, osg::Object*, osg::NodeVisitor*)'
../../../lib/libosgviewer.so: undefined reference to osg::Callback::traverse(osg::Object*, osg::Object*)' ../../../lib/libosgviewer.so: undefined reference to osg::NodeVisitor::NodeVisitor(osg::NodeVisitor const&, osg::CopyOp const&)'
../../../lib/libosgviewer.so: undefined reference to osg::Drawable::EventCallback::run(osg::Object*, osg::Object*)' ../../../lib/libosgviewer.so: undefined reference to osgGA::GUIEventHandler::handle(osgGA::Event*, osg::Object*, osg::NodeVisitor*)'
../../../lib/libosgviewer.so: undefined reference to virtual thunk to osg::NodeCallback::run(osg::Object*, osg::Object*)' ../../../lib/libosgviewer.so: undefined reference to osg::Group::removeChild(osg::Node*)'
../../../lib/libosgviewer.so: undefined reference to osg::NodeVisitor::apply(osg::Geometry&)' ../../../lib/libosgviewer.so: undefined reference to VTT for osgGA::EventHandler'
../../../lib/libosgviewer.so: undefined reference to non-virtual thunk to osgGA::EventHandler::event(osg::NodeVisitor*, osg::Drawable*)' ../../../lib/libosgviewer.so: undefined reference to vtable for osgGA::EventHandler'
../../../lib/libosgviewer.so: undefined reference to osg::Group::getNumChildren() const' ../../../lib/libosgviewer.so: undefined reference to osg::NodeVisitor::apply(osg::Drawable&)'
../../../lib/libosgviewer.so: undefined reference to osg::NodeCallback::run(osg::Object*, osg::Object*)' ../../../lib/libosgviewer.so: undefined reference to osgGA::EventHandler::operator()(osg::Node*, osg::NodeVisitor*)'
collect2: error: ld returned 1 exit status
make[2]: *** [bin/cast-cost-unit] Error 1
make[1]: *** [src/trajopt/test/CMakeFiles/cast-cost-unit.dir/all] Error 2
make: *** [all] Error 2
18:35:30: The process "/usr/bin/cmake" exited with code 2.
Error while building/deploying project trajopt (kit: Desktop)
When executing step "Make"

i cloned the package and created build directory. So
cd build && cmake .. -DGUROBI_LIBRARY=/opt/gurobi751/linux64/lib/libgurobi75.so && make
gave me above error. Please help me to build it.

@k-maheshkumar k-maheshkumar changed the title cannot build trajopt cannot compile trajopt Sep 14, 2017
@EdsterG
Copy link
Collaborator

EdsterG commented Sep 15, 2017

Can you provide more information? What system are you compiling on? What version of OSG do you have installed? Can you copy/paste the output from cmake?

@k-maheshkumar
Copy link
Author

Im using ubuntu 14.04,
$ osgversion
OpenSceneGraph Library 3.4.2
$ cmake .. -DGUROBI_LIBRARY=/opt/gurobi751/linux64/lib/libgurobi75.so

cmake .. -DGUROBI_LIBRARY=/opt/gurobi751/linux64/lib/libgurobi75.so
-- The C compiler identification is GNU 4.9.4
-- The CXX compiler identification is GNU 4.9.4
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Setting build type to 'Release' as none was specified.
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.26")
-- checking for module 'eigen3'
-- found eigen3, version 3.2.0
-- Found Eigen: /usr/include/eigen3
-- Boost version: 1.54.0
-- Found the following Boost libraries:
-- system
-- python
-- thread
-- program_options
adding test with path /home/user/trajopt/python_examples/arm_to_joint_target.py
python exc
adding test with path /home/user/trajopt/python_examples/arm_to_cart_target.py
python exc
adding test with path /home/user/trajopt/python_examples/fullbody_plan.py
python exc
adding test with path /home/user/trajopt/python_examples/position_base.py
python exc
adding test with path /home/user/trajopt/python_examples/this_side_up.py
python exc
-- Found PythonInterp: /usr/bin/python (found version "2.7.6")
-- Looking for include file pthread.h
-- Looking for include file pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Found GUROBI: /opt/gurobi751/linux64/lib/libgurobi75.so
Gurobi found
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython2.7.so (found suitable version "2.7.6", minimum required is "2")
-- Boost version: 1.54.0
-- Found the following Boost libraries:
-- python
-- Found OpenThreads: /usr/local/lib64/libOpenThreads.so
-- Found osg: /usr/local/lib64/libosg.so
-- Found osgDB: /usr/local/lib64/libosgDB.so
-- Found osgUtil: /usr/local/lib64/libosgUtil.so
-- Found osgViewer: /usr/local/lib64/libosgViewer.so
-- Found osgGA: /usr/local/lib64/libosgGA.so
-- Configuring done
-- Generating done
-- Build files have been written to: /home/user/trajopt/build

@EdsterG
Copy link
Collaborator

EdsterG commented Oct 18, 2017

Looks like an issue with OpenSceneGraph 3.4.2, EventHandler handler was ether moved or removed. It should compile with OpenSceneGraph 3.4.0

@tkelestemur
Copy link

I am getting the exact same error. Installing OpenSceneGrasp 3.4.0 from source didn't help it.

@EdsterG
Copy link
Collaborator

EdsterG commented Mar 30, 2018

Try with cmake .. -DOSG_DIR=/usr/local/lib64

@EdsterG
Copy link
Collaborator

EdsterG commented Mar 30, 2018

Can you also try to compile OSG 3.4.1 from source and then compile trajopt?

@tkelestemur
Copy link

I've compiled without OSG (compiled the openrave without OSG as well) and it worked fine.
PS. I was compiling with cmake .. -DOSG_DIR=/usr/local/lib64.

Only problem is thatOpenRAVE is throwing a warning:

2018-03-30 19:01:49,624 openrave [WARN] [plugindatabase.h:929 RaveDatabase::_SysLoadLibrary] /usr/local/lib/openrave0.9-plugins/libqtosgrave.so: libosgDB.so.130: cannot open shared object file: No such file or directory

@EdsterG
Copy link
Collaborator

EdsterG commented Mar 30, 2018

Can you post all the commands you ran to install/compile OSG, OpenRave, and TrajOpt? Including every apt-get install command.

@tkelestemur
Copy link

Initially, I followed this to install OpenRAVE: https://scaron.info/teaching/installing-openrave-on-ubuntu-16.04.html
The only different thing I did was to compile latest_stable branch.
After installing openrave, I cloned trajopt and
mkdir build; cd build

cmake .. -DOSG_DIR=/usr/local/lib64 -DGUROBI_LIBRARY=/opt/gurobi752/linux64/lib/libgurobi75.so

make -j4
Since this didn't work, I did the following:
cd OpenSceneGraph/build
sudo make uninstall
cd openrave/build;
sudo make uninstall
cd ..; rm -r build; mkdir build; cd build
cmake ..
make -j4
sudo make install
cd trajopt; rm -r build; mkdir build; cd build
cmake .. -DGUROBI_LIBRARY=/opt/gurobi752/linux64/lib/libgurobi75.so
make -j4

I have just tried installing OSG 3.4.1 but the openrave is not even compiling now.

@EdsterG
Copy link
Collaborator

EdsterG commented Mar 31, 2018

Why don't you start fresh, make uninstall everything and delete the repos.

git clone https://github.com/openscenegraph/openscenegraph.git -b OpenSceneGraph-3.4.1
Build and install OSG 3.4.1 from source.

git clone https://github.com/flexible-collision-library/fcl.git -b 0.5.0
Build and install FCL 0.5.0 from source (needed for OpenRAVE).

Past the commands you ran to build and the resulting errors.

@tkelestemur
Copy link

Okay, so I've uninstalled and installed everything from scratch. Here is what I did after uninstalling:

  1. cd OpenSceneGraph; mkdir build; cd build (OSG branch is 3.4.1)
  2. cmake .. -DDESIRED_QT_VERSION=4
  3. make -j5
  4. sudo make install
  5. cd openrave; mkdir build; cd build (OR branch is latest_stable)
  6. mkdir build; cd build
  7. cmake .. -DOSG_DIR=/usr/local/lib64/
  8. make -j5
  9. sudo make install
  10. sudo apt-get install libopenscenegraph-dev cmake libboost-all-dev libeigen3-dev python-numpy (trajopt dependencies)
  11. cd trajopt
  12. mkdir build; cd build
  13. cmake .. -DOSG_DIR=/usr/local/lib64 -DGUROBI_LIBRARY=/opt/gurobi752/linux64/lib/libgurobi75.so

And I get the exact same errors.
I think the problem is related to libopenscenegraph-dev package. I've checked ubuntu packages and it is installing version 3.2 where source installation of OpenSceneGraph is 3.4.x.

@tkelestemur
Copy link

I am able to build the trajopt without osgviewer. I've commented out every entry in CMakeLists.txt for osgviewer. I am not sure if this is gonna affect the trajopt functionality but it seems to me that osgviewer is used for visualisation without openrave since I'm gonna use C++ API in another openrave code this should be ok.

@EdsterG
Copy link
Collaborator

EdsterG commented Apr 1, 2018

Yeah, don't install libopenscenegraph-dev via apt-get.

Uninstall the apt-get version and reinstalled the one from source by running:

  1. sudo apt-get remove libopenscenegraph-dev
  2. make uninstall from OpenSceneGraph/build
  3. make install from OpenSceneGraph/build

However, you're right about OSG being needed only for visualization, so there's no need to build with it.

@tkelestemur
Copy link

If I don't have libopenscenegraph-dev is installed via apt-get, trajopt is throwing an error when I compile with osgviewer. I am not sure if source installation of OSG is not installing dev files or I'm point it wrong.

@EdsterG
Copy link
Collaborator

EdsterG commented Apr 2, 2018

Whats the version of your OS?

@tkelestemur
Copy link

It's Ubuntu 16.04. I've ended up compiling openrave by disabling OSG. I uninstalled OSG 3.4.x that I installed from source and installed libopenscenegraph-dev via apt-get. Finally, I was able to compile trajopt with OSG. I am using qtcoin for openrave.

@lakshmip001
Copy link

I installed libopenscegraph-dev for trajopt but it doesnt work with openrave.When I use openscenegraph same as trajopt , openrave gives an error that it doesnt load the environment. I am a beginner using two together, can you give instructions on how to use qtcoin with openrave?

@lakshmip001
Copy link

I am using ubuntu 16.04 , I sloved above error by libopenscengraph-dev. Due to some reasons I did compiling again and I come across this error still
[ 96%] Linking CXX executable ../../../bin/collision-checker-unit
../../../lib/libosgviewer.so: undefined reference to osg::Callback::traverse(osg::Object*, osg::Object*)' ../../../lib/libosgviewer.so: undefined reference to osg::Group::removeChild(osg::Node*)'
../../../lib/libosgviewer.so: undefined reference to VTT for osgGA::EventHandler' ../../../lib/libosgviewer.so: undefined reference to non-virtual thunk to osgGA::EventHandler::event(osg::NodeVisitor*, osg::Drawable*)'
../../../lib/libosgviewer.so: undefined reference to vtable for osgGA::EventHandler' ../../../lib/libosgviewer.so: undefined reference to osgGA::GUIEventHandler::handle(osgGA::Event*, osg::Object*, osg::NodeVisitor*)'
../../../lib/libosgviewer.so: undefined reference to osg::Group::getNumChildren() const' ../../../lib/libosgviewer.so: undefined reference to osg::NodeVisitor::apply(osg::Drawable&)'
../../../lib/libosgviewer.so: undefined reference to osgGA::EventHandler::operator()(osg::Node*, osg::NodeVisitor*)' ../../../lib/libosgviewer.so: undefined reference to typeinfo for osgGA::EventHandler'
../../../lib/libosgviewer.so: undefined reference to osgGA::EventHandler::event(osg::NodeVisitor*, osg::Drawable*)' ../../../lib/libosgviewer.so: undefined reference to virtual thunk to osg::Drawable::EventCallback::run(osg::Object*, osg::Object*)'
../../../lib/libosgviewer.so: undefined reference to osgGA::EventHandler::handle(osgGA::Event*, osg::Object*, osg::NodeVisitor*)' ../../../lib/libosgviewer.so: undefined reference to osg::Drawable::EventCallback::run(osg::Object*, osg::Object*)'
../../../lib/libosgviewer.so: undefined reference to osg::NodeVisitor::NodeVisitor(osg::NodeVisitor const&, osg::CopyOp const&)' ../../../lib/libosgviewer.so: undefined reference to virtual thunk to osg::NodeCallback::run(osg::Object*, osg::Object*)'
../../../lib/libosgviewer.so: undefined reference to osg::NodeVisitor::apply(osg::Geometry&)' ../../../lib/libosgviewer.so: undefined reference to osg::NodeCallback::run(osg::Object*, osg::Object*)'
collect2: error: ld returned 1 exit status
src/trajopt/test/CMakeFiles/collision-checker-unit.dir/build.make:106: recipe for target 'bin/collision-checker-unit' failed
make[2]: *** [bin/collision-checker-unit] Error 1
CMakeFiles/Makefile2:635: recipe for target 'src/trajopt/test/CMakeFiles/collision-checker-unit.dir/all' failed
make[1]: *** [src/trajopt/test/CMakeFiles/collision-checker-unit.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
../../../lib/libosgviewer.so: undefined reference to osg::Callback::traverse(osg::Object*, osg::Object*)' ../../../lib/libosgviewer.so: undefined reference to osg::Group::removeChild(osg::Node*)'
../../../lib/libosgviewer.so: undefined reference to VTT for osgGA::EventHandler' ../../../lib/libosgviewer.so: undefined reference to non-virtual thunk to osgGA::EventHandler::event(osg::NodeVisitor*, osg::Drawable*)'
../../../lib/libosgviewer.so: undefined reference to vtable for osgGA::EventHandler' ../../../lib/libosgviewer.so: undefined reference to osgGA::GUIEventHandler::handle(osgGA::Event*, osg::Object*, osg::NodeVisitor*)'
../../../lib/libosgviewer.so: undefined reference to osg::Group::getNumChildren() const' ../../../lib/libosgviewer.so: undefined reference to osg::NodeVisitor::apply(osg::Drawable&)'
../../../lib/libosgviewer.so: undefined reference to osgGA::EventHandler::operator()(osg::Node*, osg::NodeVisitor*)' ../../../lib/libosgviewer.so: undefined reference to typeinfo for osgGA::EventHandler'
../../../lib/libosgviewer.so: undefined reference to osgGA::EventHandler::event(osg::NodeVisitor*, osg::Drawable*)' ../../../lib/libosgviewer.so: undefined reference to virtual thunk to osg::Drawable::EventCallback::run(osg::Object*, osg::Object*)'
../../../lib/libosgviewer.so: undefined reference to osgGA::EventHandler::handle(osgGA::Event*, osg::Object*, osg::NodeVisitor*)' ../../../lib/libosgviewer.so: undefined reference to osg::Drawable::EventCallback::run(osg::Object*, osg::Object*)'
../../../lib/libosgviewer.so: undefined reference to osg::NodeVisitor::NodeVisitor(osg::NodeVisitor const&, osg::CopyOp const&)' ../../../lib/libosgviewer.so: undefined reference to virtual thunk to osg::NodeCallback::run(osg::Object*, osg::Object*)'
../../../lib/libosgviewer.so: undefined reference to osg::NodeVisitor::apply(osg::Geometry&)' ../../../lib/libosgviewer.so: undefined reference to osg::NodeCallback::run(osg::Object*, osg::Object*)'
collect2: error: ld returned 1 exit status
src/trajopt/test/CMakeFiles/cast-cost-unit.dir/build.make:107: recipe for target 'bin/cast-cost-unit' failed
make[2]: *** [bin/cast-cost-unit] Error 1
CMakeFiles/Makefile2:678: recipe for target 'src/trajopt/test/CMakeFiles/cast-cost-unit.dir/all' failed
make[1]: *** [src/trajopt/test/CMakeFiles/cast-cost-unit.dir/all] Error 2
Makefile:94: recipe for target 'all' failed
make: *** [all] Error 2
Any idea how I can solve it.

@lakshmip001
Copy link

my sudo apt-get install libopenscenegraph-dev doesnt install libopenscegraph-dev.so and results in .md5sums,.lists files . while try to remove libopenscenegraph100v5 it also removes libopenscengraph-dev. So kindly please let how I can solve this without the above error.

@lakshmip001
Copy link

I sloved this problem by uninstalling and reinstalling with the following steps
git clone https://github.com/openscenegraph/openscenegraph.git -b OpenSceneGraph-3.4.1
mkdir build && cd build
cmake .. -DDESIRED_QT_VERSION=4
make -j5
sudo make install

and the setting ENV_VAR in .bashrc
export LD_LIBRARY_PATH="/usr/local/lib64:/usr/local/lib:$(openrave-config --python-dir)/openravepy/openravepy:$LD_LIBRARY_PATH"
export OPENTHREADS_INC_DIR="/usr/local/include"
export OPENTHREADS_LIB_DIR="/usr/local/lib64:/usr/local/lib"
export PATH="$OPENTHREADS_LIB_DIR:$PATH"

@142857T
Copy link

142857T commented Dec 23, 2019

My solution:

  1. install OSG3.4.0 from source
  2. sudo apt-get install libopenscenegraph-dev
  3. sudo cp /usr/include/osg/CameraNode usr/local/include/osg/
  4. sudo apt-get remove libopenscenegraph-dev
  5. build trajopt

@An804182
Copy link

An804182 commented Jul 5, 2020

thanks for this post. I almost tried every method mentioned above by everyone and finally successfully build. and ctest has a result of 100% passed. so thank everyone for giving instruction

@ZZHPKU
Copy link

ZZHPKU commented Feb 3, 2023

My final solution :

Environment: Ubuntu 16

Step 1: Install OpenRAVE. Ref: https://gitcode.net/mirrors/crigroup/openrave-installation?utm_source=csdn_github_accelerator.
PS: We need OpenRAVE>=0.8, so Ubuntu 16 (or 14) is required with above method.

Step 2: Install CMake, boost, and Eigen using your package manager (Don't install OpenSceneGraph as we have install it at step 1. This is important).
Command: sudo apt-get install cmake libboost-all-dev libeigen3-dev python-numpy

Step 3: Install trajopt. Command as follows:
git clone https://github.com/joschu/trajopt.git
cd trajopt
mkdir build
cd build
cmake .. -DOSG_DIR=/usr/local/lib64
make -j

An error I meet: trajopt/src/osgviewer/osgviewer.cpp:17:10: fatal error: osg/CameraNode: No such file or directory
Solution: Modify trajopt/src/osgviewer/osgviewer.cpp so that CameraNode is replaced by Camera.

Step 4: For testing, refer to https://rll.berkeley.edu/trajopt/doc/sphinx_build/html/install.html

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants