`
nnwq
  • 浏览: 209214 次
社区版块
存档分类
最新评论

OpenSceneGraph 编译 error LNK2019:unresolved external symbol 错误

 
阅读更多

在编译 OpenSceneGraph 的一个简单示例时,

 1 #include <osgViewer/Viewer>
 2 #include <osgDB/ReadFile> 3 
 4 
 5 void _tmain(int argc, _TCHAR* argv[])
 6 {
 7     osgViewer::Viewer viewer;
 8     viewer.setSceneData(osgDB::readNodeFile("glider.osg"));
 9     viewer.realize();
10     viewer.run();    
11 }

遇到了 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 错误。

参考链接:

  1. error LNK2019: unresolved external symbol
  2. 求助:最简单的OSG例子编译出错
  3. error LNK2019: unresolved external symbol "__declspec(dllimport)
0
2
分享到:
评论

相关推荐

    OpenSceneGraph编译过程

    OpenSceneGraph编译过程详解 OpenSceneGraph是一款开源的三维图形渲染引擎,广泛应用于游戏、模拟、科学可视化等领域。为了能够成功编译和安装OpenSceneGraph,需要了解整个编译过程。本文将详细介绍OpenSceneGraph...

    osg(openscenegraph)Windows vs2012 编译库文件 http://iting.in

    标题提到的"osg(openscenegraph)Windows vs2012 编译库文件"是指在Windows操作系统上,使用VS2012编译的OpenSceneGraph 3.2.1版本的预编译库。这个预编译包使得开发者可以直接在他们的项目中引用,而无需从源代码...

    OpenSceneGraph-3.6.5-VC2019-x64(osg-3.6.5源码+已编译开发包+零基础使用图文详解+fbx插件+官方资源包+已编译3rdParty).zip

    1:OpenSceneGraph-3.6.5-x64.zip为使用VC2019编译的x64版开发包(Release和Debug两套),里面包含bin、include、lib三个文件夹,bin目录中osgviewer.exe、osgviewerMFC.exe不用配置环境可以直接运行,可以当作模型...

    OpenSceneGraph-3.6.5-VC2019-64-Release.7z

    这个“OpenSceneGraph-3.6.5-VC2019-64-Release.7z”压缩包是针对Visual Studio 2019编译环境的64位Release构建版本。OpenSceneGraph库提供了丰富的图形功能,包括3D场景管理、高级渲染技术、硬件加速以及对OpenGL...

    OpenSceneGraph-3.4.0MinGW编译版

    标题提到的是OpenSceneGraph的3.4.0版本,针对MinGW编译环境,特别地,这个版本是使用Qt 5.4.2和mingw4.9.1编译器构建的。这表明该压缩包包含了一个适合在Windows系统上运行,并且集成了Qt图形界面库的...

    openscenegraph(osg)3.2.1rc1 android静态库 http://521.be

    原来在这里发布过一版,在成功编译示例以后没有运行测试就传上来了,后来自己导入模型后发现不能正常显示,现又编译一版,为gles1.0版本,解压后大概有4g。 本附件为下载地址,不是附件本身,基于osg最新版3.2.1rc1...

    OpenSceneGraph-3.6.5-VC2019-64.rar

    这个压缩包"OpenSceneGraph-3.6.5-VC2019-64.rar"包含的是针对Visual Studio 2019编译的OpenSceneGraph 3.6.5版本的库文件,分别对应于Debug和Release两种构建配置。 首先,我们要理解Debug和Release的区别。在开发...

    OpenSceneGraph-3.6.5_build_vs2019_install.zip

    这个压缩包"OpenSceneGraph-3.6.5_build_vs2019_install.zip"包含了使用Visual Studio 2019(VS2019)编译的OpenSceneGraph 3.6.5版本的构建结果和安装文件。对于想要在Windows平台上开发3D图形应用的开发者来说,这...

    openscenegraph-跨平台指南:OpenSceneGraph跨平台指南:在Linux,macOS,Windows,Android,iOS,Web下运行OSG

    OpenSceneGraph(OSG)是一款强大的开源3D图形库,专为实时三维可视化设计,它支持多种操作系统,包括Linux、macOS、Windows、Android、iOS以及Web。本指南旨在帮助开发者理解和实现OSG在这些平台上的跨平台应用。 ...

    OpenSceneGraph3.6.5.zip(二进制预编译包)

    OSG3.6.5源码在Visual Studio 2019环境下编译的64位二进制开发包

    Qt5.6.1和VS2017编译的OpenSceneGraph3.4.0库及测试工程

    在本文中,我们将深入探讨如何使用Qt5.6.1和Visual Studio 2017(VS2017)来编译OpenSceneGraph(OSG)3.4.0库,并创建一个测试工程来验证其正确性。OpenSceneGraph是一个强大的开源图形库,它提供了一整套用于3D...

    OpenSceneGraph-3.6.4_vs2019_x64.7z

    这个"OpenSceneGraph-3.6.4_vs2019_x64.7z"压缩包包含了针对Visual Studio 2019编译的64位版本的OSG开发环境。在Windows平台上,开发者经常依赖于这样的工具集来构建和运行3D应用,因为它们提供了必要的库、头文件、...

    openSceneGraph3.5.1编译

    osg3.5.1_windows_lib_dll_debug_release,openSceneGraph3.5.1编译 OpenSceneGraph3.5.1在windows10、visual studio2019编译的动态库和静态库

    OpenSceneGraph-3.6.5-VC2019-64-Debug.7z

    这个压缩包"OpenSceneGraph-3.6.5-VC2019-64-Debug.7z"包含了OpenSceneGraph的3.6.5版本,针对Visual Studio 2019编译器和64位操作系统编译的调试版本。以下是关于OpenSceneGraph和其相关知识点的详细介绍: 1. **...

    osg OpenSceneGraph编译好的文件,可免去编译

    OpenSceneGraph 图形系统是一个基于工业标准 OpenGL 的软件接口,它让 程序员能够更加快速、便捷地创建高性能、跨平台的交互式图形程序。

    OpenSceneGraph-3.4.0网盘地址.rar

    OpenSceneGraph是一个强大的开源图形库,专为实时3D应用程序设计,如模拟、游戏和科学可视化。这个"OpenSceneGraph-3.4.0.zip"压缩包包含了OpenSceneGraph的3.4.0版本源码,是开发人员进行图形渲染和场景管理的重要...

    OpenSceneGraph-3.6.4_vs2019_x86.7z

    这个"OpenSceneGraph-3.6.4_vs2019_x86.7z"压缩包包含了针对Visual Studio 2019编译环境的x86架构的OSG开发包。OpenSceneGraph提供了丰富的API,支持多种3D图形功能,广泛应用于游戏开发、科学可视化、虚拟现实等...

    OpenSceneGraph-3.0.1 vs2008编译后文件

    在编译过程中,可能会遇到的问题包括找不到依赖库、链接错误、版本不兼容等。解决这些问题通常需要查阅官方文档,查找类似问题的解决方案,或者更新相关库。 OpenSceneGraph的使用不仅仅局限于游戏开发,它也广泛...

    Win32环境编译OpenSceneGraph 2.0

    ### Win32环境编译OpenSceneGraph 2.0 #### 概述 本文主要介绍如何在Windows环境下使用CMake工具编译OpenSceneGraph (OSG) 2.0版本的过程。OpenSceneGraph是一个高性能的跨平台图形渲染库,广泛应用于虚拟现实、...

    OpenSceneGraph-OpenSceneGraph-3.6.3.rar

    OpenSceneGraph是一个开源的3D图形库,专为构建高性能的可视化应用程序而设计。这个"OpenSceneGraph-OpenSceneGraph-3.6.3.rar"压缩包包含了OpenSceneGraph的3.6.3版本,这是一个功能强大的软件开发工具包(SDK),...

Global site tag (gtag.js) - Google Analytics