首页 > 解决方案 > VTK - 从 6.1 迁移到 8.2 [2]

问题描述

请看这个帖子:

VTK - 从 6.1 迁移到 8.2

我设置了所有设置,但我只收到 3 个错误,而且我几天都无法摆脱它们:

1>------ Build started: Project: MyApp, Configuration: Debug x64 ------
1>   Creating library F:\MyApp\x64\Debug\MyApp.lib and object F:\MyApp\x64\Debug\MyApp.exp
1>MyAppView.obj : warning LNK4217: locally defined symbol ??0vtkMFCWindow@@QEAA@PEAVCWnd@@@Z (public: __cdecl vtkMFCWindow::vtkMFCWindow(class CWnd *)) imported in function "protected: __int64 __cdecl CMyAppView::OnPostInit(unsigned __int64,__int64)" (?OnPostInit@CMyAppView@@IEAA_J_K_J@Z)
1>MyAppView.obj : warning LNK4217: locally defined symbol ??1vtkMFCWindow@@UEAA@XZ (public: virtual __cdecl vtkMFCWindow::~vtkMFCWindow(void)) imported in function "public: virtual void * __cdecl vtkMFCWindow::`scalar deleting destructor'(unsigned int)" (??_GvtkMFCWindow@@UEAAPEAXI@Z)
1>VTKView.obj : warning LNK4217: locally defined symbol ?DrawDC@vtkMFCWindow@@QEAAXPEAVCDC@@@Z (public: void __cdecl vtkMFCWindow::DrawDC(class CDC *)) imported in function "public: virtual void __cdecl CVTKView::OnDraw(class CDC *)" (?OnDraw@CVTKView@@UEAAXPEAVCDC@@@Z)
1>vtkRenderingOpenGL2-8.2.lib(vtkOpenGLState.obj) : error LNK2019: unresolved external symbol __imp_SymGetLineFromAddr64 referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl getProgramStack(void)" (?getProgramStack@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
1>vtkRenderingOpenGL2-8.2.lib(vtkOpenGLState.obj) : error LNK2019: unresolved external symbol __imp_SymInitialize referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl getProgramStack(void)" (?getProgramStack@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
1>vtkRenderingOpenGL2-8.2.lib(vtkOpenGLState.obj) : error LNK2019: unresolved external symbol __imp_SymFromAddr referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl getProgramStack(void)" (?getProgramStack@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
1>F:\MyApp\x64\Debug\MyApp.exe : fatal error LNK1120: 3 unresolved externals
1>Done building project "MyApp.vcxproj" -- FAILED.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

你能提示 gt 远离这些链接错误吗?

标签: c++visual-c++mfcvtk

解决方案


  • 将您的二进制文件与dbghelp.lib

    例如,如果您使用 CMake,则在您的 CMakeLists.txt 中添加类似以下行的内容

    target_link_libraries(${project_name} PRIVATE dbghelp.lib)

    如果您不使用 CMake,则将其添加到项目(链接器/输入/附加依赖项)中

    或将以下内容添加到以下某处的 main.cpp 包括

    #pragma comment(lib, "dbghelp.lib") //untested

  • 可能在 VTK CMake 中关闭 VTK 错误日志记录也可能会有所帮助(不确定)

    VTK_REPORT_OPENGL_ERRORS [ ]


推荐阅读