vtk问题,解决马上结帖!!!(up也有分)

Morgan_ma 2003-10-09 04:21:13
我装了vtk4.2,lib,include等都已设置好,在vs中运行D:\Program Files\vtk42\Examples\GUI\Win32\vtkMFC中的vtkSDI,为什么有这样的错误?


VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class vtkCubeAxesActor2D * __cdecl vtkCubeAxesActor2D::New(void)" (__imp_?New@vtkCubeAxesActor2D@@SAPAV1@XZ) ,该符号在函数 "protected: __thiscall CVtkSDIView::CVtkSDIView(void)" (??0CVtkSDIView@@IAE@XZ) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class vtkGlyph3D * __cdecl vtkGlyph3D::New(void)" (__imp_?New@vtkGlyph3D@@SAPAV1@XZ) ,该符号在函数 "protected: __thiscall CVtkSDIView::CVtkSDIView(void)" (??0CVtkSDIView@@IAE@XZ) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class vtkConeSource * __cdecl vtkConeSource::New(void)" (__imp_?New@vtkConeSource@@SAPAV1@XZ) ,该符号在函数 "protected: __thiscall CVtkSDIView::CVtkSDIView(void)" (??0CVtkSDIView@@IAE@XZ) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class vtkActor * __cdecl vtkActor::New(void)" (__imp_?New@vtkActor@@SAPAV1@XZ) ,该符号在函数 "protected: __thiscall CVtkSDIView::CVtkSDIView(void)" (??0CVtkSDIView@@IAE@XZ) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class vtkPolyDataMapper * __cdecl vtkPolyDataMapper::New(void)" (__imp_?New@vtkPolyDataMapper@@SAPAV1@XZ) ,该符号在函数 "protected: __thiscall CVtkSDIView::CVtkSDIView(void)" (??0CVtkSDIView@@IAE@XZ) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class vtkElevationFilter * __cdecl vtkElevationFilter::New(void)" (__imp_?New@vtkElevationFilter@@SAPAV1@XZ) ,该符号在函数 "protected: __thiscall CVtkSDIView::CVtkSDIView(void)" (??0CVtkSDIView@@IAE@XZ) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class vtkSphereSource * __cdecl vtkSphereSource::New(void)" (__imp_?New@vtkSphereSource@@SAPAV1@XZ) ,该符号在函数 "protected: __thiscall CVtkSDIView::CVtkSDIView(void)" (??0CVtkSDIView@@IAE@XZ) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class vtkWin32RenderWindowInteractor * __cdecl vtkWin32RenderWindowInteractor::New(void)" (__imp_?New@vtkWin32RenderWindowInteractor@@SAPAV1@XZ) ,该符号在函数 "protected: __thiscall CVtkSDIView::CVtkSDIView(void)" (??0CVtkSDIView@@IAE@XZ) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class vtkWin32OpenGLRenderWindow * __cdecl vtkWin32OpenGLRenderWindow::New(void)" (__imp_?New@vtkWin32OpenGLRenderWindow@@SAPAV1@XZ) ,该符号在函数 "protected: __thiscall CVtkSDIView::CVtkSDIView(void)" (??0CVtkSDIView@@IAE@XZ) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: static class vtkRenderer * __cdecl vtkRenderer::New(void)" (__imp_?New@vtkRenderer@@SAPAV1@XZ) ,该符号在函数 "protected: __thiscall CVtkSDIView::CVtkSDIView(void)" (??0CVtkSDIView@@IAE@XZ) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall vtkWin32OpenGLRenderWindow::ResumeScreenRendering(void)" (__imp_?ResumeScreenRendering@vtkWin32OpenGLRenderWindow@@QAEXXZ) ,该符号在函数 "public: virtual void __thiscall CVtkSDIView::OnDraw(class CDC *)" (?OnDraw@CVtkSDIView@@UAEXPAVCDC@@@Z) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: struct HDC__ * __thiscall vtkWin32OpenGLRenderWindow::GetMemoryDC(void)" (__imp_?GetMemoryDC@vtkWin32OpenGLRenderWindow@@QAEPAUHDC__@@XZ) ,该符号在函数 "public: virtual void __thiscall CVtkSDIView::OnDraw(class CDC *)" (?OnDraw@CVtkSDIView@@UAEXPAVCDC@@@Z) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall vtkWin32OpenGLRenderWindow::SetupMemoryRendering(int,int,struct HDC__ *)" (__imp_?SetupMemoryRendering@vtkWin32OpenGLRenderWindow@@QAEXHHPAUHDC__@@@Z) ,该符号在函数 "public: virtual void __thiscall CVtkSDIView::OnDraw(class CDC *)" (?OnDraw@CVtkSDIView@@UAEXPAVCDC@@@Z) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall vtkRenderer::ResetCamera(void)" (__imp_?ResetCamera@vtkRenderer@@QAEXXZ) ,该符号在函数 "public: virtual void __thiscall CVtkSDIView::OnDraw(class CDC *)" (?OnDraw@CVtkSDIView@@UAEXPAVCDC@@@Z) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) public: void __thiscall vtkRenderWindowInteractor::SetRenderWindow(class vtkRenderWindow *)" (__imp_?SetRenderWindow@vtkRenderWindowInteractor@@QAEXPAVvtkRenderWindow@@@Z) ,该符号在函数 "public: int __thiscall CVtkSDIView::OnCreate(struct tagCREATESTRUCTA *)" (?OnCreate@CVtkSDIView@@QAEHPAUtagCREATESTRUCTA@@@Z) 中被引用
VtkSDIView.obj : error LNK2019: 无法解析的外部符号 "__declspec(dllimport) long __stdcall vtkHandleMessage2(struct HWND__ *,unsigned int,unsigned int,long,class vtkWin32RenderWindowInteractor *)" (__imp_?vtkHandleMessage2@@YGJPAUHWND__@@IIJPAVvtkWin32RenderWindowInteractor@@@Z) ,该符号在函数 "protected: virtual long __thiscall CVtkSDIView::WindowProc(unsigned int,unsigned int,long)" (?WindowProc@CVtkSDIView@@MAEJIIJ@Z) 中被引用

...

Debug/VtkSDI.exe : fatal error LNK1120: 27 个无法解析的外部命令


怎么解决?
...全文
359 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
Morgan_ma 2003-10-16
  • 打赏
  • 举报
回复
谢谢各位,所有问题都已经被我解决! :) 散分!
wqs6 2003-10-16
  • 打赏
  • 举报
回复
asett1(asett1)说得很有道理!
你该试试看!
至于现在的问题,你再开个帖子吧!

Morgan_ma 2003-10-16
  • 打赏
  • 举报
回复
第一个问题已经解决。。。

现在的问题是我编译好了source,但是为什么生成的只有lib文件,dll文件怎么生成?
asett1 2003-10-16
  • 打赏
  • 举报
回复
你应该把原来版本的lib ,dll,include files都delete.重新设置include path , lib path,link ,和dll 这4项!!
最可能的问题是:用的是原来的include files ,新的lib files
另外cmake编译,要用最新cmake,原来对vs.net编译有问题。
我没有用vc.net 2003,用的vc6,vtk本身bug满天飞,也许是和vs.net不太兼容。
你可以尝试用vc6编译source,再看看。
wqs6 2003-10-16
  • 打赏
  • 举报
回复
说好像有个exe文件找不到?
难道是wish8X.ext?
不明白!
你很有可能是哪里没设定好。
程序本身好像也有问题。
Morgan_ma 2003-10-16
  • 打赏
  • 举报
回复
还有,我用学校编译的版本,编译这个例子,出现了这样的错误:

d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(862) : error C2143: 语法错误 : 缺少“;”(在“<”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(935) : 参见对正在编译的类模板实例化“std::istreambuf_iterator<_Elem,_Traits>”的引用
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(862) : error C2238: 意外的标记位于“;”之前
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(863) : error C2143: 语法错误 : 缺少“;”(在“<”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(863) : error C2238: 意外的标记位于“;”之前
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(866) : error C2143: 语法错误 : 缺少“)”(在“*”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(866) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(866) : error C2864: “_Sb” : 只有常数静态整型数据成员才可以在类或结构中初始化
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(866) : error C2501: “std::istreambuf_iterator<_Elem,_Traits>::_Sb” : 缺少存储类或类型说明符
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(866) : error C2143: 语法错误 : 缺少“;”(在“throw”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(866) : error C2334: “:”的前面有意外标记;跳过明显的函数体
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(871) : error C2143: 语法错误 : 缺少“)”(在“&”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(871) : error C2143: 语法错误 : 缺少“;”(在“&”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(871) : error C2059: 语法错误 : “)”
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(871) : error C2143: 语法错误 : 缺少“;”(在“throw”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(871) : error C2501: “std::istreambuf_iterator<_Elem,_Traits>::_Istr” : 缺少存储类或类型说明符
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(871) : error C2334: “:”的前面有意外标记;跳过明显的函数体
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(932) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(932) : error C2501: “std::istreambuf_iterator<_Elem,_Traits>::streambuf_type” : 缺少存储类或类型说明符
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(932) : error C2501: “std::istreambuf_iterator<_Elem,_Traits>::_Strbuf” : 缺少存储类或类型说明符
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(966) : error C2143: 语法错误 : 缺少“;”(在“<”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(1011) : 参见对正在编译的类模板实例化“std::ostreambuf_iterator<_Elem,_Traits>”的引用
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(966) : error C2238: 意外的标记位于“;”之前
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(967) : error C2143: 语法错误 : 缺少“;”(在“<”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(967) : error C2238: 意外的标记位于“;”之前
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(969) : error C2143: 语法错误 : 缺少“)”(在“*”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(969) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(969) : error C2059: 语法错误 : “)”
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(969) : error C2143: 语法错误 : 缺少“;”(在“throw”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(969) : error C2501: “std::ostreambuf_iterator<_Elem,_Traits>::_Sb” : 缺少存储类或类型说明符
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(969) : error C2334: “:”的前面有意外标记;跳过明显的函数体
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(974) : error C2143: 语法错误 : 缺少“)”(在“&”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(974) : error C2143: 语法错误 : 缺少“;”(在“&”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(974) : error C2059: 语法错误 : “)”
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(974) : error C2143: 语法错误 : 缺少“;”(在“throw”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(974) : error C2501: “std::ostreambuf_iterator<_Elem,_Traits>::_Ostr” : 缺少存储类或类型说明符
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(974) : error C2334: “:”的前面有意外标记;跳过明显的函数体
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(1010) : error C2143: 语法错误 : 缺少“;”(在“*”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(1010) : error C2501: “std::ostreambuf_iterator<_Elem,_Traits>::streambuf_type” : 缺少存储类或类型说明符
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(1010) : error C2501: “std::ostreambuf_iterator<_Elem,_Traits>::_Strbuf” : 缺少存储类或类型说明符
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(1075) : error C2143: 语法错误 : 缺少“;”(在“<”的前面)
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(1075) : error C2433: “pair” : 不允许在数据声明中使用“inline”
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(1075) : error C2501: “pair” : 缺少存储类或类型说明符
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(1075) : error C2988: 不可识别的模板声明/定义
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(1075) : error C2059: 语法错误 : “<”
d:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\xutility(1089) : error C2143: 语法错误 : 缺少“;”(在“{”的前面)

是不是还有哪里没设置好?
Morgan_ma 2003-10-16
  • 打赏
  • 举报
回复
现在我已经把源码下来了,按照它的说明,我用cmakesetup编译,奇怪在学校的机器上win2k编译通过了,可是回家在xp上同样再次编译,说好像有个exe文件找不到,通不过。为什么?
wqs6 2003-10-15
  • 打赏
  • 举报
回复
是vtkdll.dll文件
这个文件肯定得有!
Sundery 2003-10-14
  • 打赏
  • 举报
回复
关注...
wqs6 2003-10-14
  • 打赏
  • 举报
回复
1,你先照我说的试一下
2,我没有用什么cmake
asett1 2003-10-14
  • 打赏
  • 举报
回复
我没有见到过vtk.dll这个文件,可能在4.0以上就没有这个dll了
wqs6 2003-10-14
  • 打赏
  • 举报
回复
没有vtkdll.dll
那怎么可能调得通????
这跟我的版本没有关系。
但是我的确没法全部通过,因为版本问题。
我用的是vtk3.2
Morgan_ma 2003-10-14
  • 打赏
  • 举报
回复
试过了,我这里没有vtkdll.dll这个文件,所以不能成功。还有你调试我的问题的时候是用vtk3.2?
Morgan_ma 2003-10-14
  • 打赏
  • 举报
回复
to asett1(asett1):你说的有道理,我会试试看。。。

to wqs6(竹山):你是不是也自己把源码cmake了一遍?

还有,小弟cmake没用过,能说说清楚了吗?谢谢。。。
Morgan_ma 2003-10-13
  • 打赏
  • 举报
回复
楼上什么意思,能说说清楚么?
asett1 2003-10-13
  • 打赏
  • 举报
回复
vtkGraphics.dll的版本不对!
wqs6 2003-10-13
  • 打赏
  • 举报
回复
我试过你给我的文件了,开始我也出现了如你说的错误。我的解决方法是:
project->setting->link->object/library modules的文本框里面加入:
vtkdll.dll
上述问题得到解决!
asett1(asett1)说的正是我所遇到的,我用的是vtk3.2版本,所以调不通你的
但是你的问题可以解决。
asett1 2003-10-13
  • 打赏
  • 举报
回复
vtk 由于版本经常更新,常常会造成,header files ,lib files ,dll files不一致的情况,不要以为从官方网站下载下来的就一定ok !
要确保一致,最好用cmake编译最新的source files,删除以前版本的lib ,h,dll..
然后设置,就肯定没问题了。
Morgan_ma 2003-10-11
  • 打赏
  • 举报
回复
好啊。你有没有qq,我的是19232596
Morgan_ma 2003-10-11
  • 打赏
  • 举报
回复
已经发送。。。
加载更多回复(20)

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧