Error adding symbols: DSO missing from command line

Problems building or running the engine, queries about how to use features etc.
Post Reply
Vido
Halfling
Posts: 63
Joined: Thu Feb 26, 2015 3:48 pm
x 1

Error adding symbols: DSO missing from command line

Post by Vido »

Ogre Version: :1.10.0:
Operating System: :Ubuntu 16.04:
Render System: :OpenGL:

Hi guys Im trying to compile OgreMeashy and I first got an erro

Code: Select all

$ make
[  9%] Linking CXX executable bin/RelWithDebInfo/OgreMeshy
/usr/bin/ld: CMakeFiles/OgreMeshy.dir/src/Core/AnimationPanel.cpp.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
//usr/lib/x86_64-linux-gnu/libboost_system.so.1.58.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
CMakeFiles/OgreMeshy.dir/build.make:234: recipe for target 'bin/RelWithDebInfo/OgreMeshy' failed
make[2]: *** [bin/RelWithDebInfo/OgreMeshy] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/OgreMeshy.dir/all' failed
make[1]: *** [CMakeFiles/OgreMeshy.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
after that I added boost_system to CMakeLists.txt like so

Code: Select all

target_link_libraries( OgreMeshy ${GTK2_LIBRARIES} ${OPENGL_LIBRARIES} boost_system )
instead

Code: Select all

target_link_libraries( OgreMeshy ${GTK2_LIBRARIES} ${OPENGL_LIBRARIES} )
but I'v got different error

Code: Select all

[100%] Linking CXX executable bin/RelWithDebInfo/OgreMeshy
CMakeFiles/OgreMeshy.dir/src/Core/AnimationPanel.cpp.o: In function `AnimationPanel::showBones(bool)':
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/AnimationPanel.cpp:138: undefined reference to `Ogre::Skeleton::getRootBones() const'
CMakeFiles/OgreMeshy.dir/src/Core/MovableText.cpp.o: In function `Ogre::MovableText::setFontName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)':
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/MovableText.cpp:62: undefined reference to `Ogre::ResourceManager::remove(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/MovableText.cpp:75: undefined reference to `Ogre::ResourceManager::remove(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles/OgreMeshy.dir/src/Core/MovableText.cpp.o: In function `Ogre::MovableText::~MovableText()':
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/MovableText.cpp:55: undefined reference to `Ogre::ResourceManager::remove(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
CMakeFiles/OgreMeshy.dir/src/Core/MovableText.cpp.o: In function `Ogre::MovableText::_setupGeometry()':
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/MovableText.cpp:207: undefined reference to `Ogre::VertexBufferBinding::setBinding(unsigned short, Ogre::SharedPtr<Ogre::HardwareVertexBuffer> const&)'
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/MovableText.cpp:216: undefined reference to `Ogre::VertexBufferBinding::setBinding(unsigned short, Ogre::SharedPtr<Ogre::HardwareVertexBuffer> const&)'
CMakeFiles/OgreMeshy.dir/src/Core/MovableText.cpp.o:(.rodata._ZTVN4Ogre11MovableTextE[_ZTVN4Ogre11MovableTextE]+0x50): undefined reference to `Ogre::MovableObject::getShadowVolumeRenderableIterator(Ogre::ShadowTechnique, Ogre::Light const*, Ogre::SharedPtr<Ogre::HardwareIndexBuffer>*, unsigned long*, bool, float, unsigned long)'
CMakeFiles/OgreMeshy.dir/src/Core/MovableText.cpp.o:(.rodata._ZTVN4Ogre11MovableTextE[_ZTVN4Ogre11MovableTextE]+0x68): undefined reference to `Ogre::ShadowCaster::generateShadowVolume(Ogre::EdgeData*, Ogre::SharedPtr<Ogre::HardwareIndexBuffer> const&, unsigned long&, Ogre::Light const*, std::vector<Ogre::ShadowRenderable*, std::allocator<Ogre::ShadowRenderable*> >&, unsigned long)'
CMakeFiles/OgreMeshy.dir/src/Core/wxOgreMeshViewerMainFrameImpl.cpp.o: In function `MeshyMainFrameImpl::unloadResourcesCfg()':
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/wxOgreMeshViewerMainFrameImpl.cpp:927: undefined reference to `Ogre::ResourceGroupManager::getResourceGroups[abi:cxx11]() const'
CMakeFiles/OgreMeshy.dir/src/Core/wxOgreMeshViewerMainFrameImpl.cpp.o: In function `MeshyMainFrameImpl::viewGridSettings()':
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/wxOgreMeshViewerMainFrameImpl.cpp:1235: undefined reference to `Ogre::ResourceManager::remove(Ogre::SharedPtr<Ogre::Resource> const&)'
CMakeFiles/OgreMeshy.dir/src/Core/wxOgreMeshViewerMainFrameImpl.cpp.o: In function `MeshyMainFrameImpl::showMeshInfo()':
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/wxOgreMeshViewerMainFrameImpl.cpp:979: undefined reference to `Ogre::Entity::getSubEntity(unsigned long) const'
CMakeFiles/OgreMeshy.dir/src/Core/wxOgreMeshViewerMainFrameImpl.cpp.o: In function `MeshyMainFrameImpl::loadResourcesCfg(wxString const&)':
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/wxOgreMeshViewerMainFrameImpl.cpp:848: undefined reference to `Ogre::Entity::getSubEntity(unsigned long) const'
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/wxOgreMeshViewerMainFrameImpl.cpp:914: undefined reference to `Ogre::Entity::getSubEntity(unsigned long) const'
CMakeFiles/OgreMeshy.dir/src/Core/wxOgreRenderWindow.cpp.o: In function `wxOgreRenderWindow::CreateRenderWindow()':
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/wxOgreRenderWindow.cpp:179: undefined reference to `Ogre::Root::createRenderWindow(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned int, unsigned int, bool, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > const*)'
collect2: error: ld returned 1 exit status
CMakeFiles/OgreMeshy.dir/build.make:234: recipe for target 'bin/RelWithDebInfo/OgreMeshy' failed
make[2]: *** [bin/RelWithDebInfo/OgreMeshy] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/OgreMeshy.dir/all' failed
make[1]: *** [CMakeFiles/OgreMeshy.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
What Im doing wrong ?
nqdev
Gnoblar
Posts: 20
Joined: Sun Sep 09, 2018 12:59 am

Re: Error adding symbols: DSO missing from command line

Post by nqdev »

Try linking with pthread.
Vido
Halfling
Posts: 63
Joined: Thu Feb 26, 2015 3:48 pm
x 1

Re: Error adding symbols: DSO missing from command line

Post by Vido »

nqdev wrote: Fri Nov 30, 2018 8:44 pm Try linking with pthread.
Nope it does not work

Code: Select all

$ make -lpthread
[  9%] Linking CXX executable bin/RelWithDebInfo/OgreMeshy
/usr/bin/ld: CMakeFiles/OgreMeshy.dir/src/Core/AnimationPanel.cpp.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
//usr/lib/x86_64-linux-gnu/libboost_system.so.1.58.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
CMakeFiles/OgreMeshy.dir/build.make:234: recipe for target 'bin/RelWithDebInfo/OgreMeshy' failed
make[2]: *** [bin/RelWithDebInfo/OgreMeshy] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/OgreMeshy.dir/all' failed
make[1]: *** [CMakeFiles/OgreMeshy.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
nqdev
Gnoblar
Posts: 20
Joined: Sun Sep 09, 2018 12:59 am

Re: Error adding symbols: DSO missing from command line

Post by nqdev »

IMO, the "DSO missing from command line" is a separate error, where you'll need pthread. It would appear boost_system is possibly out of order for how it's required.

Have you looked at the link order? Try adding boost_system before the others?

Update:
Or possibly you're using some of the library features of boost and your boost install is all headers. In which case you'll need to build the libs if you don't have them.
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5292
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: Error adding symbols: DSO missing from command line

Post by dark_sylinc »

Mmm...
Try what you did:

Code: Select all

target_link_libraries( OgreMeshy ${GTK2_LIBRARIES} ${OPENGL_LIBRARIES} boost_system )
Plus the following:

Code: Select all

set( CMAKE_CXX_STANDARD 98 )
If 98 does not work, try 03 & 11 instead.

I'm shooting in the dark here. It's been a long time I compiled Ogre 1.x; specially for Linux
Vido
Halfling
Posts: 63
Joined: Thu Feb 26, 2015 3:48 pm
x 1

Re: Error adding symbols: DSO missing from command line

Post by Vido »

I tried what you suggested except poking with link order since I dont know which part of CMmakeLists is it exactly. I put

Code: Select all

set( CMAKE_CXX_STANDARD 98 )
and

Code: Select all

set( CMAKE_CXX_STANDARD 03 & 11)
after

Code: Select all

if( UNIX )
	target_link_libraries( OgreMeshy ${GTK2_LIBRARIES} ${OPENGL_LIBRARIES} boost_system )
like so if thats correct I not know

Code: Select all

if( UNIX )
	target_link_libraries( OgreMeshy ${GTK2_LIBRARIES} ${OPENGL_LIBRARIES} boost_system )
	set( CMAKE_CXX_STANDARD  03 & 11 )
And I got same error
Vido
Halfling
Posts: 63
Joined: Thu Feb 26, 2015 3:48 pm
x 1

Re: Error adding symbols: DSO missing from command line

Post by Vido »

nqdev wrote: Sat Dec 01, 2018 4:27 am Have you looked at the link order? Try adding boost_system before the others?
Yup I tried reordering link's but that did not worked. Does anyone have an other idea ?

Edit; tried adding LDFLAGS=-lm but same result
Vido
Halfling
Posts: 63
Joined: Thu Feb 26, 2015 3:48 pm
x 1

Re: Error adding symbols: DSO missing from command line

Post by Vido »

Here is latest error

Code: Select all

make all
[  9%] Building CXX object CMakeFiles/OgreMeshy.dir/src/Core/AnimationPanel.cpp.o
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/AnimationPanel.cpp: In member function ‘void AnimationPanel::showBones(bool)’:
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/AnimationPanel.cpp:138:64: error: ‘class Ogre::SkeletonInstance’ has no member named ‘getRootBones’
   const Ogre::Skeleton::BoneList &boneList = skeletonInstance->getRootBones();
                                                                ^
CMakeFiles/OgreMeshy.dir/build.make:62: recipe for target 'CMakeFiles/OgreMeshy.dir/src/Core/AnimationPanel.cpp.o' failed
make[2]: *** [CMakeFiles/OgreMeshy.dir/src/Core/AnimationPanel.cpp.o] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/OgreMeshy.dir/all' failed
make[1]: *** [CMakeFiles/OgreMeshy.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
paroj
OGRE Team Member
OGRE Team Member
Posts: 1993
Joined: Sun Mar 30, 2014 2:51 pm
x 1073
Contact:

Re: Error adding symbols: DSO missing from command line

Post by paroj »

you should further downgrade Ogre to 1.9. Meshy was not updated for a long time.

I got it running with 1.11 locally - however even if it starts, it crashes all over the place.

Therefore I started writing a new mesh viewer from scratch.
Vido
Halfling
Posts: 63
Joined: Thu Feb 26, 2015 3:48 pm
x 1

Re: Error adding symbols: DSO missing from command line

Post by Vido »

paroj wrote: Mon Dec 03, 2018 12:39 am you should further downgrade Ogre to 1.9. Meshy was not updated for a long time.

I got it running with 1.11 locally - however even if it starts, it crashes all over the place.

Therefore I started writing a new mesh viewer from scratch.
Ok I see, so great news I cant wait to test it, I wish you all well :)

Edit: I tried with ogre 1.9 but I got same error

Code: Select all

error: ‘class Ogre::SkeletonInstance’ has no member named ‘getRootBones’
Vido
Halfling
Posts: 63
Joined: Thu Feb 26, 2015 3:48 pm
x 1

Re: Error adding symbols: DSO missing from command line

Post by Vido »

paroj wrote: Mon Dec 03, 2018 12:39 am you should further downgrade Ogre to 1.9. Meshy was not updated for a long time.
How did you manage to do it, I tried to copile 1.9 but got an error

Code: Select all

[ 99%] Linking CXX executable ../../bin/SampleBrowser
../../lib/libOgreMain.so.1.9.0: undefined reference to `void Ogre::ProgressiveMeshGenerator::addIndexDataImpl<unsigned short>(unsigned short*, unsigned short const*, std::vector<Ogre::ProgressiveMeshGenerator::PMVertex*, Ogre::STLAllocator<Ogre::ProgressiveMeshGenerator::PMVertex*, Ogre::CategorisedAllocPolicy<(Ogre::MemoryCategory)0> > >&, unsigned short)'
collect2: error: ld returned 1 exit status
Samples/Browser/CMakeFiles/SampleBrowser.dir/build.make:102: recipe for target 'bin/SampleBrowser' failed
make[2]: *** [bin/SampleBrowser] Error 1
CMakeFiles/Makefile2:3665: recipe for target 'Samples/Browser/CMakeFiles/SampleBrowser.dir/all' failed
make[1]: *** [Samples/Browser/CMakeFiles/SampleBrowser.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
Here is how I do it,

1. Downloaded OgreMeshy
2. cd dark_sylinc-ogremeshy-2110b963ee28/scripts/Resources/
3. chmod +x copyresources.sh
4 ./copyresources.sh
5. Downloaded Ogre 1.9
6. mkdir dark_sylinc-ogremeshy-2110b963ee28/Dependencies/Ogre/build/RelWithDebInfo
7 copy content of Ogre 1.9 to dark_sylinc-ogremeshy-2110b963ee28/Dependencies/Ogre
8 cd dark_sylinc-ogremeshy-2110b963ee28/Dependencies/Ogre/build/RelWithDebInfo
9 make ../../
10 cd dark_sylinc-ogremeshy-2110b963ee28
11 make

When I switch to Ogre 1.10 it compile fine but got this error

Code: Select all

$ make
Scanning dependencies of target OgreMeshy
[  9%] Building CXX object CMakeFiles/OgreMeshy.dir/src/Core/AnimationPanel.cpp.o
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/AnimationPanel.cpp: In member function ‘void AnimationPanel::showBones(bool)’:
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/AnimationPanel.cpp:138:64: error: ‘class Ogre::SkeletonInstance’ has no member named ‘getRootBones’
   const Ogre::Skeleton::BoneList &boneList = skeletonInstance->getRootBones();
                                                                ^
CMakeFiles/OgreMeshy.dir/build.make:62: recipe for target 'CMakeFiles/OgreMeshy.dir/src/Core/AnimationPanel.cpp.o' failed
make[2]: *** [CMakeFiles/OgreMeshy.dir/src/Core/AnimationPanel.cpp.o] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/OgreMeshy.dir/all' failed
make[1]: *** [CMakeFiles/OgreMeshy.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
What Im doing wrong ?

Edit: I tried Ogre 1.9.1 it compile fine but got following error when I tried to compile OgreMeshy

Code: Select all

$ make
Scanning dependencies of target OgreMeshy
[  9%] Building CXX object CMakeFiles/OgreMeshy.dir/src/Core/AnimationPanel.cpp.o
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/AnimationPanel.cpp: In member function ‘void AnimationPanel::showBones(bool)’:
/home/slobodan/dark_sylinc-ogremeshy-2110b963ee28/src/Core/AnimationPanel.cpp:138:64: error: ‘class Ogre::SkeletonInstance’ has no member named ‘getRootBones’
   const Ogre::Skeleton::BoneList &boneList = skeletonInstance->getRootBones();
                                                                ^
CMakeFiles/OgreMeshy.dir/build.make:62: recipe for target 'CMakeFiles/OgreMeshy.dir/src/Core/AnimationPanel.cpp.o' failed
make[2]: *** [CMakeFiles/OgreMeshy.dir/src/Core/AnimationPanel.cpp.o] Error 1
CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/OgreMeshy.dir/all' failed
make[1]: *** [CMakeFiles/OgreMeshy.dir/all] Error 2
Makefile:151: recipe for target 'all' failed
make: *** [all] Error 2
User avatar
dark_sylinc
OGRE Team Member
OGRE Team Member
Posts: 5292
Joined: Sat Jul 21, 2007 4:55 pm
Location: Buenos Aires, Argentina
x 1278
Contact:

Re: Error adding symbols: DSO missing from command line

Post by dark_sylinc »

I've build a version for Ubuntu 18.04 against latest Ogre 1.11

I fixed the major crashes I saw. Seems to work ok now.

Download link.

Let me know if it works for you.
Vido
Halfling
Posts: 63
Joined: Thu Feb 26, 2015 3:48 pm
x 1

Re: Error adding symbols: DSO missing from command line

Post by Vido »

dark_sylinc wrote: Tue Dec 04, 2018 12:30 am I've build a version for Ubuntu 18.04 against latest Ogre 1.11

I fixed the major crashes I saw. Seems to work ok now.

Download link.

Let me know if it works for you.
Nope it does nor work for me here is log

Code: Select all

./OgreMeshy 
./OgreMeshy: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by libOgreMain.so.1.11.4)
./OgreMeshy: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.22' not found (required by libOgreMain.so.1.11.4)
./OgreMeshy: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.27' not found (required by libOgreRTShaderSystem.so.1.11.4)
Can you describe in few steps what do you did diferently from me ? Tnx
paroj
OGRE Team Member
OGRE Team Member
Posts: 1993
Joined: Sun Mar 30, 2014 2:51 pm
x 1073
Contact:

Re: Error adding symbols: DSO missing from command line

Post by paroj »

Vido wrote: Mon Dec 03, 2018 12:57 pm
paroj wrote: Mon Dec 03, 2018 12:39 am you should further downgrade Ogre to 1.9. Meshy was not updated for a long time.

I got it running with 1.11 locally - however even if it starts, it crashes all over the place.

Therefore I started writing a new mesh viewer from scratch.
Ok I see, so great news I cant wait to test it, I wish you all well :)
here you go https://snapcraft.io/ogre-meshviewer
Vido
Halfling
Posts: 63
Joined: Thu Feb 26, 2015 3:48 pm
x 1

Re: Error adding symbols: DSO missing from command line

Post by Vido »

paroj wrote: Sat Dec 08, 2018 1:03 am
here you go https://snapcraft.io/ogre-meshviewer
Great I cant belive that you did it in short period of time, I tried loading sindad but got an error

Code: Select all

Mesh: Loading Sinbad.mesh.
Traceback (most recent call last):
  File "/snap/ogre-meshviewer/24/bin/ogre_mesh_viewer.py", line 342, in <module>
    app.initApp()
  File "/snap/ogre-meshviewer/24/bin/ogre_mesh_viewer.py", line 290, in setup
    self.entity = scn_mgr.createEntity(self.meshname)
RuntimeError: FileNotFoundException: Cannot locate resource Sinbad.mesh in resource group OgreAutodetect. in ResourceGroupManager::openResource at /build/ogre-meshviewer/parts/ogre/src/OgreMain/src/OgreResourceGroupManager.cpp (line 699)
paroj
OGRE Team Member
OGRE Team Member
Posts: 1993
Joined: Sun Mar 30, 2014 2:51 pm
x 1073
Contact:

Re: Error adding symbols: DSO missing from command line

Post by paroj »

try opening the meshes here first: https://github.com/OGRECave/ogre/tree/m ... dia/models
(you should be able to just double click them in your local copy. alternatively look in the "open with" menu)

also note that this app is sandboxed meaning it cannot access anything outside your home folder.

As for Sinbad.mesh: It is located inside a .zip file. Therefore you have to specify the resources.cfg that refrences it as:
ogre-meshviewer -c path/to/your/build/bin/resources.cfg Sinbad.mesh
Post Reply