首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > Ruby Rails >

OpenSceneGraph 编译 error LNK2019:unresolved external symbol 异常

2013-07-16 
OpenSceneGraph 编译 error LNK2019:unresolved external symbol 错误1Hello OSGs World.obj : error LN

OpenSceneGraph 编译 error LNK2019:unresolved external symbol 错误

1>Hello OSG's World.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall osgViewer::Viewer::Viewer(void)" (__imp_??0Viewer@osgViewer@@QAE@XZ) referenced in function _main

LNK2019错误一般是 compile 能找到 header(.h)文件,但是在链接时找不到需要的 lib 库文件或者是 dll 文件。

一般认为在编译 OSG 简单示例的时候遇到这样的错误是因为错误的设置了 lib2。OSG 的 lib 目录中一般有两组文件名相似的 lib 文件,其中一组以 d 结尾,例如:osgDBd.lib, osgViewerd.lib,这个表示该 lib 是用于调试 debug,而不带 d 的一组是用于 release 版本。

如果没有正确的指定 lib 文件,那么一般会出现 error LNK2019 错误。比如,编译时指定的是 debug, 但是依赖项设置的却是不带 d 的那一组 release 版本的 lib 文件;或者是编译时指定 debug,但是依赖项设置的是带 d 的一组。只要编译的选项和调用的 lib 一致即可解决这个问题。

不过我仔细检查了自己调用的 lib,编译的选项和调用的 lib 都是 debug 版本的。

后来发现,开发机器是64位的,而编译选项的目标平台(platform)选择的却是 win32,修改为 x64 之后解决了这个链接错误。

也看到有人说1,前面函数声明与后面的函数定义参数类型不同时,有时 compile 能够通过,但是 link 的时候会出现 error LNK2019 错误。

参考链接:

    error LNK2019: unresolved external symbol求助:最简单的OSG例子编译出错error LNK2019: unresolved external symbol "__declspec(dllimport)

热点排行