OpenSceneGraph 编译 error LNK2019:unresolved external symbol 错误
2013-07-02 14:52
465 查看
在编译 OpenSceneGraph 的一个简单示例时,
遇到了 error LNK2019:unresolved external symbol 错误,错误提示如下;
1>Hello OSG's World.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall osgViewer::Viewer::`vbase destructor'(void)" (__imp_??_DViewer@osgViewer@@QAEXXZ) referenced in function _main
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)
#include <osgViewer/Viewer> #include <osgDB/ReadFile> void _tmain(int argc, _TCHAR* argv[]) { osgViewer::Viewer viewer; viewer.setSceneData(osgDB::readNodeFile("glider.osg")); viewer.realize(); viewer.run(); }
遇到了 error LNK2019:unresolved external symbol 错误,错误提示如下;
1>Hello OSG's World.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __thiscall osgViewer::Viewer::`vbase destructor'(void)" (__imp_??_DViewer@osgViewer@@QAEXXZ) referenced in function _main
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)
相关文章推荐
- Qt 编译时出现“-1: error: LNK2019: unresolved external symbol "public: void __thiscall M”错误
- VS2005 VS05 编译错误 unresolved external symbol __imp__TransparentBlt@44 解决 方法
- 编译ATL工程的连接错误:__fltused already defined 和 unresolved external symbol _main
- error LNK2019 unresolved external symbol __imp__IoDeleteDevice 错误
- error LNK2019: unresolved external symbol错误 (ICU4C)
- error LNK2019: unresolved external symbol _IID_IMPEG2PIDMap连接错误的解决
- vs 2005链接时错误的解决方案 error LNK2019: unresolved external symbol __security_cookie referenced in function
- error LNK2019: unresolved external symbol "public 错误的出现原因. .
- mini6410 WinCE visual studio 编译错误:error LNK2001: unresolved external symbol dpCurSettings
- vc++中的编译链接错误error link2001 unresolved external symbol _main解决办法
- VC 6.0 serverDlg.obj : error LNK2001: unresolved external symbol __imp__listen@8编译错误
- VC编译错误:LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main编译错误
- [Qt4]VS2010编译提示error LNK2001: unresolved external symbol "public: virtual struct QMetaObject等错误解决方案
- vs 2005链接时错误的解决方案 error LNK2019: unresolved external symbol __security_cookie referenced in function
- VS2008编译webrt错误:cerror LNK2019: unresolved external symbol "void __stdcall DeleteMediaType
- 驱动简单例子编译,出现错误LNK2019:unresolved external symbol _DriverEntry@8
- (已解决!GUID的外部定义和内部定义)VC编译错误:error LNK2001: unresolved external symbol _GUID_DEVINTERFACE_USB_DEVICE
- 编译UltraVNC时的Debug版本时遇到vncclient.obj : error LNK2019: unresolved external symbol _compress等错误
- error LNK2001:unresolved external symbol __imp__编译错误解决方法
- 关于工具编译asm文件产生unresolved external symbol _WinMainCRTStartup错误的解决方法