我想使用命令行编译一个使用VTK库的简单程序:
g++ -IC:\VTK\Install\includes\vtk-5.10 SimpleTest.cpp -LC:\VTK\Install\lib
\vtk_5.10 -lvtkCommon -lvtkGraphics
简单测试.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()”的引用
C:\VTK\Install\lib\vtk_5.10/libvtkGraphics.a(vtkConeSource.cxx.obj):vtkConeSource.cxx:(.text+0x36): undefined reference to `vtkInformation::Set(vtkInformationIntegerKey*, int)'
C:\VTK\Install\lib\vtk_5.10/libvtkGraphics.a(vtkConeSource.cxx.obj):vtkConeSource.cxx:(.text+0x85): 未定义引用`vtkPolyDataAlgorithm::PrintSelf(std::ostream&, vtkIndent )'
C:\VTK\Install\lib\vtk_5.10/libvtkGraphics.a(vtkConeSource.cxx.obj):vtkConeSource.cxx:(.text+0x9f): undefined reference to `operator<<(std::ostream&, vtkIndent const& )'
还有很多 ...
我不知道我是否对 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”。这可能是问题的一部分吗?