Linker 正确链接osg/openthreads

Linker 正确链接osg/openthreads,linker,openscenegraph,Linker,Openscenegraph,我很难让OSG/OpenThreads在一个简单的示例应用程序中工作。这就是我的命令的样子: g++ bAuto.o -o bAuto -lGL -lGLU -lstdc++ -losgSim -losgText -losgGA -losgParticle -losgDB -losgViewer -losgUtil -losg -lGLU -lGL -lOpenThreads -L/opt/xfree86/default/lib -L/media/Programme/dev/cpp_libs/

我很难让OSG/OpenThreads在一个简单的示例应用程序中工作。这就是我的命令的样子:

g++ bAuto.o -o bAuto -lGL -lGLU -lstdc++ -losgSim -losgText -losgGA -losgParticle -losgDB -losgViewer -losgUtil -losg -lGLU -lGL  -lOpenThreads -L/opt/xfree86/default/lib -L/media/Programme/dev/cpp_libs/OpenSceneGraph/OpenSceneGraph-3.0.1-Ubuntu-x64-release-12741/lib64
bAuto.o: In function `osg::Referenced::unref() const':
bAuto.cpp:(.text._ZNK3osg10Referenced5unrefEv[osg::Referenced::unref() const]+0xd): undefined reference to `OpenThreads::Atomic::operator--()'

所以我链接了OpenThreads,它肯定在lib64文件夹中。如果我删除链接依赖项,它会向OpenThreads中的函数抛出更多的链接器错误。我错过了什么?我也尝试了x86版本,但它告诉我所有其他lib都不兼容,因此无法找到。我的系统是x64,但它不应该向后兼容吗?

这可能是相同的错误(阅读整个线程):

Hm…我不完全理解整个事情,但在这种情况下,似乎很多都是由CMake配置造成的。我只是用一个普通的make文件。我是否可以查看OpenThreads.so的内容以检查是否定义了此运算符?