我想使用命令行使用VTK库编译一个简单的程序:
g++ -IC:\VTK\Install\includes\vtk-5.10 SimpleTest.cpp -LC:\VTK\Install\lib
\vtk_5.10 -lvtkCommon -lvtkGraphics
SimpleTest.cpp
#include "vtkConeSource.h"
int main()
{
vtkConeSource* cone = vtkConeSource::New();
cone->SetHeight(5.0);
return 1;
}
但我总是得到很多关于“未定义的引用”的错误。例如:
C:\ VTK \ Install \ lib \ vtk_5.10 / libvtkGraphics.a(vtkConeSource.cxx.obj):vtkConeSource.cxx :(。text + 0x1c):未定义引用`vtkInformationVector :: GetInformationObject(int)'
C:\ VTK \ Install \ lib \ vtk_5.10 / libvtkGraphics.a(vtkConeSource.cxx.obj):vtkConeSource.cxx :(。text + 0x24):未定义引用`vtkStreamingDemandDrivenPipeline :: MAXIMUM_NUMBER_OF_PIECES()'< / p>
C:\ VTK \ Install \ lib \ vtk_5.10 / libvtkGraphics.a(vtkConeSource.cxx.obj):vtkConeSource.cxx :(。text + 0x36):未定义引用`vtkInformation :: Set(vtkInformationIntegerKey *, INT)'
C:\ VTK \ Install \ lib \ vtk_5.10 / libvtkGraphics.a(vtkConeSource.cxx.obj):vtkConeSource.cxx :(。text + 0x85):对vtkPolyDataAlgorithm :: PrintSelf(std ::)的未定义引用ostream&amp;,vtkIndent)'
C:\ VTK \ Install \ lib \ vtk_5.10 / libvtkGraphics.a(vtkConeSource.cxx.obj):vtkConeSource.cxx :(。text + 0x9f):对运算符&lt;&lt;(std ::)的未定义引用ostream&amp;,vtkIndent const&amp;)'
还有更多......
我无法判断我是否使用了错误的g ++语法或者我的VTK库是否有问题。
我正在使用: VTK 5.10.1
minGW 4.7.2,32位
VTK是使用CMake 2.8.11.2
从minGW编译而来的更新: 我确实找到了这个教程http://vtkblog.blogspot.com/2008/05/build-vtk-from-source-using-mingwmsys.html。但是我使用minGW32-make而不是安装MSYS并使用它的“make”。这可能是问题的一部分吗?
答案 0 :(得分:0)
作为第一个测试,请尝试明确包含Install \ lib \ _ vtk_5.10中包含的所有vtk库 - 以确保这些未定义的引用不是来自那些缺少的库。