[vtkusers] Linking errors in MFC VC++ VTK

John Drescher drescherjm at gmail.com
Wed Apr 7 07:51:56 EDT 2010


> Hello,
> Can anybody tell me why this errors occures?
>
> --------------------Configuration: vtk1 - Win32 Debug--------------------
> Compiling...
> vtk1.cpp
> Linking...
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: _memmove already defined in LIBCD.lib(memmove.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: _strncpy already defined in LIBCD.lib(strncpy.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: _exit already defined in LIBCD.lib(crt0dat.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: _free already defined in LIBCD.lib(dbgheap.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: _malloc already defined in LIBCD.lib(dbgheap.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: _sprintf already defined in LIBCD.lib(sprintf.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: _printf already defined in LIBCD.lib(printf.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: _fclose already defined in LIBCD.lib(fclose.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: _abort already defined in LIBCD.lib(abort.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: _tolower already defined in LIBCD.lib(tolower.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: _realloc already defined in LIBCD.lib(dbgheap.obj)
> LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other libs; use /NODEFAULTLIB:library
> Debug/vtk1.exe : fatal error LNK1169: one or more multiply defined symbols found
> Error executing link.exe.
>
> vtk1.exe - 12 error(s), 1 warning(s)
>
>
>
> My code is
> #include
>
>
> #include
> #include
> #include
> #include
> #include
> #include
> #include
>
> int main ()
> {
> printf("Hello");
>
> // create sphere geometry
> vtkSphereSource *sphere = vtkSphereSource::New();
> sphere->SetRadius(1.0);
> sphere->SetThetaResolution(18);
> sphere->SetPhiResolution(18);
>
> // map to graphics library
> vtkPolyDataMapper *map = vtkPolyDataMapper::New();
> map->SetInput(sphere->GetOutput());
>
> // actor coordinates geometry, properties, transformation
> vtkActor *aSphere = vtkActor::New();
> aSphere->SetMapper(map);
> aSphere->GetProperty()->SetColor(0,0,1); // sphere color blue
>
> // a renderer and render window
> vtkRenderer *ren1 = vtkRenderer::New();
> vtkRenderWindow *renWin = vtkRenderWindow::New();
> renWin->AddRenderer(ren1);
>
> // an interactor
> vtkRenderWindowInteractor *iren = vtkRenderWindowInteractor::New();
> iren->SetRenderWindow(renWin);
>
> // add the actor to the scene
> ren1->AddActor(aSphere);
> ren1->SetBackground(1,1,1); // Background color white
>
> // render an image (lights and cameras are created automatically)
> renWin->Render();
>
> // begin mouse interaction
> iren->Start();
>
> // release memory and return
> sphere->Delete();
> map->Delete();
> aSphere->Delete();
> ren1->Delete();
> renWin->Delete();
> iren->Delete();
> return EXIT_SUCCESS;
> }
>

You posted everything but the most important file. We need your
CMakeLists.txt file for your application.

John



More information about the vtkusers mailing list