c++ - VTK - 从 6.1 迁移到 8.2 [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 远离这些链接错误吗?
解决方案
将您的二进制文件与
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 [ ]
推荐阅读
- state - 无限状态自动机
- c - 将 uint64_t 分解为 uint8_t 数组 - C
- python - 如何从字符串文字构建字符串对象?
- ag-grid - 如何在 ag 网格中更新服务器端行模型类型中的行/设置行数据?
- docker-compose - Docker-compose 卷映射到外部 USB 驱动器
- python - CUDA GPU processing: TypeError: compile_kernel() got an unexpected keyword argument 'boundscheck'
- python - 如何使用包含列表中值的字典扩展 pydatable 的列?
- java - 从文件中读取数组元素时出现 NullPointerException 错误 - Java
- android - 如何将 Firebase 中的图像检索到我的 android 应用程序中?
- mongodb - 在 docker 容器中运行 mongo