0

コマンドラインを使用して、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()' への未定義参照

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&, vtkIndent) への未定義参照)'

C:\VTK\Install\lib\vtk_5.10/libvtkGraphics.a(vtkConeSource.cxx.obj):vtkConeSource.cxx:(.text+0x9f): `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を見つけました。ただし、MSYS をインストールして「make」を使用する代わりに、minGW32-make を使用しました。これは問題の一部でしょうか?

4

1 に答える 1

0

最初のテストとして、Install\lib\vtk_5.10 に含まれるすべての vtk ライブラリを明示的に含めてみてください。これらの未定義の参照が不足しているライブラリから来ていないことを確認してください。

于 2013-08-09T12:35:43.247 に答える