Page 1 of 1

Error adding symbols: DSO missing from command line

Posted: Fri Nov 30, 2018 2:12 pm
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 ?

Re: Error adding symbols: DSO missing from command line

Posted: Fri Nov 30, 2018 8:44 pm
by nqdev
Try linking with pthread.

Re: Error adding symbols: DSO missing from command line

Posted: Fri Nov 30, 2018 9:28 pm
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

Re: Error adding symbols: DSO missing from command line

Posted: Sat Dec 01, 2018 4:27 am
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.

Re: Error adding symbols: DSO missing from command line

Posted: Sat Dec 01, 2018 6:08 am
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

Re: Error adding symbols: DSO missing from command line

Posted: Sat Dec 01, 2018 1:21 pm
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

Re: Error adding symbols: DSO missing from command line

Posted: Sat Dec 01, 2018 2:07 pm
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

Re: Error adding symbols: DSO missing from command line

Posted: Sun Dec 02, 2018 1:18 pm
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

Re: Error adding symbols: DSO missing from command line

Posted: Mon Dec 03, 2018 12:39 am
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.

Re: Error adding symbols: DSO missing from command line

Posted: Mon Dec 03, 2018 12:57 pm
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’

Re: Error adding symbols: DSO missing from command line

Posted: Mon Dec 03, 2018 8:51 pm
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

Re: Error adding symbols: DSO missing from command line

Posted: Tue Dec 04, 2018 12:30 am
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.

Re: Error adding symbols: DSO missing from command line

Posted: Tue Dec 04, 2018 1:51 pm
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

Re: Error adding symbols: DSO missing from command line

Posted: Sat Dec 08, 2018 1:03 am
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

Re: Error adding symbols: DSO missing from command line

Posted: Sat Dec 08, 2018 2:38 pm
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)

Re: Error adding symbols: DSO missing from command line

Posted: Sun Dec 09, 2018 2:23 am
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