严重性 代码 说明 项目 文件 行 禁止显示状态 错误 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)中引用了该符号
分析可能是因为库配置或库版本的问题,最后排查发现是VTK库配置有问题,但是没有从版本和CMakeLists中发现问题,先用万能解决法解决运行。
以VS2019、QT5.15.2、VTK9.2的配置为例:
项目属性 -> C/C++ -> 常规 -> 附加包含目录:(选择build/Debug目录下的include文件夹)
...\VTK\debug\include\vtk-9.2
项目属性 -> 链接器 -> 常规 -> 附加库目录:(选择build目录下的lib文件夹里选到Debug目录)
...\VTK\build_debug\lib\Debug;
项目属性 -> 链接器 -> 输入 -> 附加依赖项:(添加build目录下的lib文件夹里Debug目录中所有lib文件名)
位置:...\VTK\build_debug\lib\Debug
新建txt -> 输入dir *.lib /b > all_lib.txt
-> 后缀名.txt
改写为.bat
-> 双击生成all_lib.txt
文件 -> 复制全部,粘贴到附加依赖项
参考:【更改系统环境变量】Python编译器、CUDA、CMake等场景可设置使用
Path
环境变量,新建...\VTK\debug\bin\Debug
;VTK_DIR
环境变量名,写入...\VTK\debug\include\vtk-9.2
;