Я использую библиотеки OpenSceneGraph в своем приложении, и я хочу связать их статически, поэтому мне не нужно переносить библиотеки DLL с двоичным кодом. Я загрузил источники OpenSceneGraph 3.4.0 и сгенерировал проект Visual Studio с помощью cmake. Я отключил DYNAMIC_OPENSCENEGRAPH
и DYNAMIC_OPENTHREADS
в cmake GUI. После этого я успешно скомпилировал OSG и имею статические библиотеки (.lib). В моем приложении я добавил каталоги ввода и библиотеки в project properties -> VC++ Directories -> Include Directories
& Library Directories
(Кстати, я использую Visual Studio 2013). Я также добавил каталог с ОСГОМ .lib лет в Linker -> General -> Additional Library Directories
и напечатал всю необходимую LIBS в Linker -> Input -> Additional Dependencies
:Неразрешенные внешние ссылки на статические ссылки Библиотеки OpenSceneGraph в Visual Studio
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
в Юникод, но это не помогло (в проекте OSG, созданном cmake, у меня есть многобайтовый символ). У меня нет никаких идей, как решить это сейчас, это моя первая компиляция приложения со статическими связанными библиотеками.
Я бы очень признателен за любую помощь.
P.s. Извините за отсутствие кода, я не могу его предоставить, но я стараюсь дать как можно больше подробностей. Благодаря динамической компоновке я могу создать приложение без проблем.