[vtkusers] Migration to VTK6

David Thompson david.thompson at kitware.com
Fri Dec 11 18:40:57 EST 2015


Hi all,

FWIW, I just upgraded my Xcode to 7.2 and projects which had previously been configured by CMake suddenly started failing with this error (unistd.h file not found) because the MacOSX10.9 SDK directory was removed: only the 10.11 SDK is provided with Xcode 7.2. You can still set the deployment target to 10.9 but I have not tried anything earlier.

	David

> On Dec 11, 2015, at 12:49 AM, Arno Klein <binarybottle at gmail.com> wrote:
> 
> 'gcc tmp.cpp' created an 'a.out' file, and I have been able to compile other things, so I guess my Xcode installation is fine.  What do you recommend I try next?
> 
> Cheers,
> @rno
> 
> On Thu, Dec 10, 2015 at 7:52 PM, David Gobbi <david.gobbi at gmail.com> wrote:
> The header unistd.h is posix standard and comes with every Xcode SDK.  Try compiling the following trivial program.  If it doesn't compile, then there must be something awry with your Xcode installation:
> 
> #include <unistd.h>
> int main()
> {
>   return 0;
> }
> 
>  - David
> 
> On Thu, Dec 10, 2015 at 7:39 PM, Arno Klein <binarybottle at gmail.com> wrote:
> Thank you for your help!
> 
> I am now able to compile with cmake on linux, but get the following error on macosx 10.11, even though there is no "unistd.h" anywhere in my github repo (https://github.com/nipy/mindboggle/issues/69):
> 
> Scanning dependencies of target FsSurfaceReader
> [ 3%] Building CXX object CMakeFiles/FsSurfaceReader.dir/FsSurfaceReader.cpp.o
> In file included from /software/mindboggle/surface_cpp_tools/FsSurfaceReader.cpp:13:
> In file included from /software/mindboggle/surface_cpp_tools/FsSurfaceReader.h:16:
> In file included from /usr/local/include/vtk-6.0/vtkPolyData.h:58:
> In file included from /usr/local/include/vtk-6.0/vtkPointSet.h:30:
> In file included from /usr/local/include/vtk-6.0/vtkDataSet.h:41:
> In file included from /usr/local/include/vtk-6.0/vtkDataObject.h:36:
> In file included from /usr/local/include/vtk-6.0/vtkObject.h:42:
> In file included from /usr/local/include/vtk-6.0/vtkObjectBase.h:44:
> In file included from /usr/local/include/vtk-6.0/vtkIndent.h:25:
> In file included from /usr/local/include/vtk-6.0/vtkSystemIncludes.h:36:
> In file included from /usr/local/include/vtk-6.0/vtkIOStream.h:33:
> In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iostream:37:
> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__config:23:10: fatal error: 
> 'unistd.h' file not found
> #include 
> ^
> 1 error generated.
> make[2]: *** [CMakeFiles/FsSurfaceReader.dir/FsSurfaceReader.cpp.o] Error 1
> make[1]: *** [CMakeFiles/FsSurfaceReader.dir/all] Error 2
> make: *** [all] Error 2
> 
> Cheers,
> @rno
> 
> On Thu, Dec 3, 2015 at 6:25 AM, David E DeMarle <dave.demarle at kitware.com> wrote:
> I agree with Cory on Update() being redundant before the Write().
> 
> >    vtkDataObject* dobj = someAlgorithm->GetOutput(1);
> >    dobj->Update();
> 
> should become:
> 
>   someAlgorithm->Update(1); //to make sure there is something valid
>   vtkDataObject* dobj = someAlgorithm->GetOutput(1); //keep the output for later use
> 
> Because since vtk6, dobj no longer has any connection to the algorithm, so updating it (which used to update the algorithm for you) no longer has any meaning.
> 
> 
> 
> David E DeMarle
> Kitware, Inc.
> R&D Engineer
> 21 Corporate Drive
> Clifton Park, NY 12065-8662
> Phone: 518-881-4909
> 
> On Thu, Dec 3, 2015 at 9:09 AM, Cory Quammen <cory.quammen at kitware.com> wrote:
> Arno,
> 
> That pattern should be valid in VTK6. Are you getting compile errors?
> 
> I believe the Update() and Write() calls to the writer are redundant - you should need only one.
> 
> Thanks,
> Cory
> 
> On Wed, Dec 2, 2015 at 5:56 PM, Arno Klein <binarybottle at gmail.com> wrote:
> I am trying to update my code to migrate to VTK6 according to:
> 
> http://www.vtk.org/Wiki/VTK/VTK_6_Migration/Removal_of_Update
> 
> According to the examples on that site, I understand that:
> 
>     vtkDataObject* dobj = someAlgorithm->GetOutput(1);
>     dobj->Update();
> 
> should become:
> 
>     someAlgorithm->Update(1);
> 
> 
> However, I don’t know how to deal with the following pattern:
> 
> void PointAreaComputer::WriteIntoFile(char *fileName)
> {
>     vtkPolyDataWriter* writer=vtkPolyDataWriter::New();
>     writer->SetFileName(fileName);
>     m_mesh->GetPointData()->SetScalars(m_pointsArea);
>     writer->SetInputData(m_mesh);
>     writer->Update();
>     writer->Write();
>     writer->Delete();
> }
> 
> What should I do to make this compatible with VTK6?
> 
> Cheers,
> @rno
> 
> 
> 
> _______________________________________________
> Powered by www.kitware.com
> 
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
> 
> Please keep messages on-topic and check the VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
> 
> Search the list archives at: http://markmail.org/search/?q=vtkusers
> 
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/vtkusers



More information about the vtkusers mailing list