我在我的应用程序中使用OpenSceneGraph库,我想静态链接它们,因此我不必携带二进制文件。我已经下载了OpenSceneGraph 3.4.0源代码并通过cmake生成了Visual Studio项目。我在cmake GUI中禁用了DYNAMIC_OPENSCENEGRAPH
和DYNAMIC_OPENTHREADS
。之后,我成功地编译了OSG并且拥有静态库(.lib)。在我的应用程序中,我添加了包含和库目录project properties -> VC++ Directories -> Include Directories
& Library Directories
(我使用的是Visual Studio 2013)。我在Linker -> Input -> Additional Dependencies
还添加了OSG的.lib的目录中Linker -> General -> Additional Library Directories
和类型的所有必需的lib:在Visual Studio中静态链接OpenSceneGraph库时无法解析的外部问题
ot20-OpenThreads.lib
osg130-osg.lib
osg130-osgUtil.lib
osg130-osgGA.lib
osg130-osgDB.lib
osg130-osgViewer.lib
osg130-osgText.lib
opengl32.lib
osgdb_3ds.lib
osgdb_freetype.lib
osgdb_png.lib
而且我仍然得到了OSG符号无法解析的外部错误。我也尝试将General -> Character Set
设置为Unicode,但它没有帮助(在cmake生成的OSG项目中,无论如何我都有多字节字符)。我现在没有任何想法如何解决这个问题,这是我第一次使用静态链接库编译应用程序。
我真的很感激任何帮助。
P.s.对不起,没有代码,我不能提供它,但我尽量给予尽可能多的细节。通过动态链接,我可以构建我的应用程序而不会有任何问