VTK常见问题整理

前言:

        初次配置VTK总会遇到许多问题,而这篇文章起到了很大作用,解决了博主遇到的所有问题,现将其转载,重新排版,并做补充。

目录

前言:

1. 初始化

2. 找不到vtkRenderingOpenGL.lib

3. 问题4~问题8综述

3.1 确定Windows系统库版本及位置

3.2 配置依赖库路径

4. 关于OpenGL的问题:无法解析的外部符号__imp_gl***

5. 无法解析的外部符号 gethostbyname

6. 无法解析的外部符号 GetProcessMemoryInfo

7. 无法解析的外部符号 __imp_SymGetLineFromAddr64

8. 无法解析的外部符号 __imp__MessageBoxA@16


1. 初始化

        要在代码中调用VTK,就必须在代码前进行初始化,否则就会报类似如下错误:

         解决:添加如下代码

#include "vtkAutoInit.h"
​​​​​​​// 查看自己导的库是vtkRenderingOpenGL还是vtkRenderingOpenGL2;写入对应库
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkRenderingVolumeOpenGL2);
VTK_MODULE_INIT(vtkRenderingFreeType);
VTK_MODULE_INIT(vtkInteractionStyle);

2. 找不到vtkRenderingOpenGL.lib

        报错:
>VTK_hello.obj : error LNK2001: 无法解析的外部符号 "void __cdecl vtkRenderingOpenGL_AutoInit_Construct(void)" 
(vtkRenderingOpenGL_AutoInit_Construct@@YAXXZ)
>D:\OUR_Projects\VS2019_Projects\C++Learning\VTK_hello1\x64\Release\VTK_hello1.exe : fatal error LNK1120: 1 个无法解析的外部命令

        解决:利用Cmake查看你编译vtk时的gOpenGL是:vtkRenderingOpenGL,还是vtkRenderingOpenGL2,进行对应修改。

3. 问题4~问题8综述

        接下来(问题4~问题8)都是由于Windows系统库未导入导致的。

3.1 确定Windows系统库版本及位置

        确定编译器使用的Windows系统库版本,例VS2019

         找到文件夹位置

        这个路径每个都不一致,也可能是
        C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib\x64

3.2 配置依赖库路径

        一般VS是系统配置了Window SDK路径的,这一步就可以跳过了。否则,
右击项目>>属性>>链接器>>常规>>附加库目录,将你的Windows SDK路径导入

D:\Windows Kits\10\Lib\10.0.19041.0\um\x64

4. 关于OpenGL的问题:无法解析的外部符号__imp_gl***

        报错:

        解决:
   
    通过(3)Windos SDK的配置,接下来直接导入依赖库 "OpenGL32.lib",Windows SDK版本不同,依赖库名字的大小写或有区别,需自行到文件夹下查看
右击项目>>属性>>链接器>>输入>>附加依赖项        导入"OpenGL32.lib"

5. 无法解析的外部符号 gethostbyname​​​​​​​

        报错:

error LNK2019: 无法解析的外部符号 gethostbyname;

error LNK2019: 无法解析的外部符号 gethostname

error LNK2019: 无法解析的外部符号 WSAStartup

error LNK2019: 无法解析的外部符号 WSACleanup

        解决:
   
    通过(3)Windos SDK的配置,接下来直接导入依赖库 "WS2_32.lib",Windows SDK版本不同,依赖库名字的大小写或有区别,需自行到文件夹下查看
右击项目>>属性>>链接器>>输入>>附加依赖项        导入"WS2_32.lib"

6. 无法解析的外部符号 GetProcessMemoryInfo

        报错:

        解决:
   
    通过(3)Windos SDK的配置,接下来直接导入依赖库 "Psapi.lib",Windows SDK版本不同,依赖库名字的大小写或有区别,需自行到文件夹下查看
右击项目>>属性>>链接器>>输入>>附加依赖项        导入"Psapi.lib"

7. 无法解析的外部符号 __imp_SymGetLineFromAddr64

        报错:

vtksys-9.0d.lib(SystemInformation.obj) : error LNK2019: 无法解析的外部符号 __imp_SymGetLineFromAddr64
vtksys-9.0d.lib(SystemInformation.obj) : error LNK2019: 无法解析的外部符号 __imp_SymInitialize,
vtksys-9.0d.lib(SystemInformation.obj) : error LNK2019: 无法解析的外部符号 __imp_SymFromAddr

        解决:
   
    通过(3)Windos SDK的配置,接下来直接导入依赖库 "DbgHelp.lib",Windows SDK版本不同,依赖库名字的大小写或有区别,需自行到文件夹下查看
右击项目>>属性>>链接器>>输入>>附加依赖项        导入"DbgHelp.lib"

8. 无法解析的外部符号 __imp__MessageBoxA@16

        报错:

error LNK2001: 无法解析的外部符号 __imp__MessageBoxA@16

        解决:
   
    通过(3)Windos SDK的配置,接下来直接导入依赖库 "User32.lib",Windows SDK版本不同,依赖库名字的大小写或有区别,需自行到文件夹下查看
右击项目>>属性>>链接器>>输入>>附加依赖项        导入"User32.lib"

转载于:
VTK 问题整理 - 一杯清酒邀明月 - 博客园 (cnblogs.com)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值