我下载了VTK 6.0.0,配置了它,生成了它,并在我的Ubuntu 12.04中完成了(没有错误)。我还打开了VTK_Group_MPI和Module_vtkmrmpi的标志。我试图使用命令行编译一个VTK/MPI Hello World程序编译MPI/VTK Hello World
sudo mpiC++ -I $ HOME/Downloads/VTK6.0.0Attempt2/Parallel/MPI mpi_vtk_Hello_World.cpp -I $ HOME/Downloads/VTK6.0.0 ATTEMPT2 /并口/核心-I $ HOME /下载/ VTK6.0.0Attempt2 /通用/核心-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(vtkMultiProcess控制器*,无效*):错误:未定义对'vtkMultiProcessController :: GetLocalProcessId()'的引用'
以及2个未定义引用的其他类似错误。
我不完全确定为什么会出现这些错误。我想这可能是因为CMAKE_INSTALL_PREFIX参数,但它正确。我也在想我可能使用了错误的标志,使MPI,如建议通过http://web.archiveorange.com/archive/v/50zHj1hYwwTAT06EeG4o
其他注意事项: 我用VTK 5.8.0,而不是还试图跟着在http://wwwx.cs.unc.edu/Research/bass/index.php/VTK的说明。不幸的是,在运行sudo mpicC++命令后,我得到了未定义引用的相同错误。
您应该将VTK库链接到您的程序,例如通过像'-lvtk'这样的编译命令提供正确的链接选项。 –
我试着做**须藤MPIC++ -I $ HOME /下载/ VTK /并行-lvtk mpi_vtk_Hello_World.cpp -I $ HOME /下载/ VTK -I $ HOME /下载/ VTK /通用-o mpi_vtk_Hello_World ** 但我遇到错误 **/usr/bin/ld:错误:无法找到-lvtk **。我似乎没有一个libvtk.so,但我确实有一堆其他的libvtk * .so – ThinkFlow
没关系,我尝试使用'-lvtkParallel',它似乎工作。我如何知道这些命令行链接选项? – ThinkFlow