我下载了 VTK 6.0.0,配置它,生成它,并在我的 Ubuntu 12.04 中制作它(没有错误)。VTK_Group_MPI
我还为and开启了标志Module_vtkmrmpi
。我正在尝试使用命令行编译 VTK/MPI Hello World 程序
sudo mpic++ -I $HOME/Downloads/VTK6.0.0Attempt2/Parallel/MPI mpi_vtk_Hello_World.cpp -I $HOME/Downloads/VTK6.0.0Attempt2/Parallel/Core -I $HOME/Downloads/VTK6.0.0Attempt2/Common/Core -o mpi_vtk_Hello_World
Hello World 程序是:
#include "vtkMPIController.h"
void process(vtkMultiProcessController* controller, void* vtkNotUsed(arg))
{
int myId = controller->GetLocalProcessId();
std::cout << "My process id is ";
std::cout << myId << "." << std::endl;
}
int main( int argc, char* argv[] )
{
vtkMPIController* controller = vtkMPIController::New();
controller->Initialize(&argc, &argv);
controller->SetSingleMethod(process, 0);
controller->SingleMethodExecute();
controller->Finalize();
controller->Delete();
return 0;
}
但是,我收到一条错误消息:
/tmp/cc6iq2lQ.o:mpi_vtk_Hello_World.cpp:function process(vtkMultiProcessController*, void*): error: undefined reference to 'vtkMultiProcessController::GetLocalProcessId()'
以及其他 2 个未定义引用的类似错误。
我不完全确定为什么会发生这些错误。我在想这可能是因为 CMAKE_INSTALL_PREFIX 参数,但它是正确的。我还想我可能使用了错误的标志来启用 MPI,如此处所建议的。
附加说明:
我也尝试使用 VTK 5.8.0 并按照这些说明进行操作。sudo mpicc++
不幸的是,运行该命令后,我得到了相同的未定义引用错误。