【VS2019 Qt5 VTK9.2】临时解决配置相关问题的简单方法

配置报错

【VS2019 Qt5 VTK9.2】临时解决配置相关问题的简单方法_第1张图片

编译报错提示(LNK2019或LNK2001)

严重性 代码 说明 项目 文件 行 禁止显示状态 错误 LNK2019 无法解析的外部符号 “__declspec(dllimport) public: __cdecl QVTKOpenGLNativeWidget::QVTKOpenGLNativeWidget(class QWidget *,class QFlags)(_imp??0QVTKOpenGLNativeWidget@@QEAA@PEAVQWidget@@V?$QFlags@W4WindowType@Qt@@@@@Z),函数"public: void __cdecl MainWindow::initwindow(void)” (?initwindow@MainWindow@@QEAAXXZ)中引用了该符号

原因

  1. 可能没有正确地将包含这个函数的库添加到项目链接器设置中;
  2. 可能正在试图调用一个不存在的库函数。例如,如果你正在使用的库版本不支持你正在尝试调用的特定函数,则可能会发生这种情况;
  3. 可能在代码中声明了一个函数,但没有提供它的实现。

分析可能是因为库配置或库版本的问题,最后排查发现是VTK库配置有问题,但是没有从版本和CMakeLists中发现问题,先用万能解决法解决运行。

配置相关报错的万能解决方法

以VS2019、QT5.15.2、VTK9.2的配置为例:

1. 附加包含目录

【VS2019 Qt5 VTK9.2】临时解决配置相关问题的简单方法_第2张图片

项目属性 -> C/C++ -> 常规 -> 附加包含目录:(选择build/Debug目录下的include文件夹)

...\VTK\debug\include\vtk-9.2

2. 附加库目录

【VS2019 Qt5 VTK9.2】临时解决配置相关问题的简单方法_第3张图片
项目属性 -> 链接器 -> 常规 -> 附加库目录:(选择build目录下的lib文件夹里选到Debug目录

...\VTK\build_debug\lib\Debug;

3. 添加附加依赖项

【VS2019 Qt5 VTK9.2】临时解决配置相关问题的简单方法_第4张图片
项目属性 -> 链接器 -> 输入 -> 附加依赖项:(添加build目录下的lib文件夹里Debug目录中所有lib文件名)
位置:...\VTK\build_debug\lib\Debug

快速获取该文件夹下所有文件名的方法:

新建txt -> 输入dir *.lib /b > all_lib.txt -> 后缀名.txt改写为.bat -> 双击生成all_lib.txt文件 -> 复制全部,粘贴到附加依赖项

系统环境变量设置(重启生效)

参考:【更改系统环境变量】Python编译器、CUDA、CMake等场景可设置使用

  1. 编辑Path环境变量,新建...\VTK\debug\bin\Debug
  2. 新建一个VTK_DIR环境变量名,写入...\VTK\debug\include\vtk-9.2
  3. 重启!

你可能感兴趣的:(Tipnotes,qt,c++,笔记)