Search code examples
c++visual-studio-2013openscenegraph

OpenSceneGraph LNK2019


I'm trying to use OpenSceneGraph. I have used CMake and Visual Studio 2013 X64 to compile the source code. Now I'm tying to build a project but I get the following errors:

Error   1   error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl osgViewer::Viewer::Viewer(void)" (__imp_??0Viewer@osgViewer@@QEAA@XZ) referenced in function main  C:\Users\epsilon-pc\documents\visual studio 2013\Projects\osgtest2\osgtest2\mainApp.obj osgtest2

Error   2   error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual void __cdecl osgViewer::Viewer::setSceneData(class osg::Node *)" (__imp_?setSceneData@Viewer@osgViewer@@UEAAXPEAVNode@osg@@@Z) referenced in function main C:\Users\epsilon-pc\documents\visual studio 2013\Projects\osgtest2\osgtest2\mainApp.obj osgtest2

Error   3   error LNK2019: unresolved external symbol "__declspec(dllimport) public: virtual int __cdecl osgViewer::Viewer::run(void)" (__imp_?run@Viewer@osgViewer@@UEAAHXZ) referenced in function main   C:\Users\epsilon-pc\documents\visual studio 2013\Projects\osgtest2\osgtest2\mainApp.obj osgtest2

Error   4   error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl osgViewer::Viewer::`vbase destructor'(void)" (__imp_??_DViewer@osgViewer@@QEAAXXZ) referenced in function main    C:\Users\epsilon-pc\documents\visual studio 2013\Projects\osgtest2\osgtest2\mainApp.obj osgtest2

Error   5   error LNK1120: 4 unresolved externals   C:\Users\epsilon-pc\documents\visual studio 2013\Projects\osgtest2\x64\Debug\osgtest2.exe   osgtest2

I have already added VC/C++ Additional Include and Linker Additional Library Directory and Input for

osgGAd.lib;
osgFXd.lib;
osgUtild.lib;
osgd.lib;
osgDBd.lib;

This is my code (as simple as it gets):

#include <osgDB/ReadFile>
#include <osgViewer/Viewer>

int main(int argc, char** argv)
{
    osgViewer::Viewer viewer;
    viewer.setSceneData(osgDB::readNodeFile("cessna.osg"));
    return viewer.run();
}

Solution

  • In linking phase compiler is not finding osgViewer library; adding osgViewerd.lib to linking libraries should resolve your problem. Let me know if it solves the problem.