[Insight-users] How can i complie RegionGrowingSegmentation outside InsightApplications?

Luis Ibanez luis.ibanez at kitware.com
Sat Mar 17 19:42:36 EST 2007


Hi 刘兴昇

You must also copy from InsightApplications the directory:

                 Auxiliary/FltkImageViewer

and add that directory to your application.

Most of the FLTK based applications depend on auxiliary
classes located in the FltkImageViewer directory.


    Regards,


       Luis


==================
刘兴昇 wrote:
> Dear Luis and all ITK users,
> 
>       I want to RegionGrowingSegmentation outside 
> InsightApplications.(makes it has its own *.dsw)  So I moved the 
> RegionGrowingSegmentation directory to the E:\ root and just added two 
> macros(ITK_DISABLE_FLTK_GENERATED_WARNINGS and ADD_GUI_EXECUTABLE) to 
> the original CMakeList.txt.
> 
>       Here is my CMakeList.txt:
> 
> PROJECT( RegionGrowingSegmentation )
> 
> # The fluid-generated fltk sources have many warnings.  This macro
> # will disable warnings for the generated files on some compilers.
> MACRO(ITK_DISABLE_FLTK_GENERATED_WARNINGS files)
>   IF(CMAKE_COMPILER_IS_GNUCXX)
>     FOREACH(f ${files})
>       STRING(REGEX REPLACE "\\.fl$" ".cxx" SRC "${f}")
>       STRING(REGEX REPLACE ".*/([^/]*)$" "\\1" SRC "${SRC}")
>       SET_SOURCE_FILES_PROPERTIES(${SRC} PROPERTIES COMPILE_FLAGS -w)
>     ENDFOREACH(f)
>   ENDIF(CMAKE_COMPILER_IS_GNUCXX)
> ENDMACRO(ITK_DISABLE_FLTK_GENERATED_WARNINGS)
> 
> # Macro for adding resources to GUI application on the Mac
> #
> IF(APPLE AND NOT FLTK_USE_X)
>     FIND_PROGRAM(ITK_APPLE_RESOURCE Rez /Developer/Tools)
>     FIND_FILE(ITK_FLTK_RESOURCE mac.r /usr/local/include/FL)
>     IF(NOT ITK_FLTK_RESOURCE)
>       MESSAGE("Fltk resources not found, GUI application will not 
> respond to mouse events")
>     ENDIF(NOT ITK_FLTK_RESOURCE)
> 
>     MACRO(ADD_GUI_EXECUTABLE name sources)
>       ADD_EXECUTABLE(${name} ${sources})
>       INSTALL_TARGETS(/bin ${name})
>       SET(EXEC_PATH ${EXECUTABLE_OUTPUT_PATH})
>       IF(NOT EXEC_PATH)
>         SET(EXEC_PATH ${CMAKE_CURRENT_BINARY_DIR})
>       ENDIF(NOT EXEC_PATH)
>         IF(ITK_APPLE_RESOURCE)
>           ADD_CUSTOM_COMMAND(SOURCE ${name}
>                              COMMAND ${ITK_APPLE_RESOURCE}
>                              ARGS -t APPL ${ITK_FLTK_RESOURCE} -o
>                              ${EXEC_PATH}/${name}
>                              TARGET ${name})
>         ENDIF(ITK_APPLE_RESOURCE)
>     ENDMACRO(ADD_GUI_EXECUTABLE)
> ELSE(APPLE AND NOT FLTK_USE_X)
>   MACRO(ADD_GUI_EXECUTABLE name sources)
>     ADD_EXECUTABLE(${name} ${sources})
>     INSTALL_TARGETS(/bin ${name})
>   ENDMACRO(ADD_GUI_EXECUTABLE)
> ENDIF(APPLE AND NOT FLTK_USE_X)
> 
>   FIND_PACKAGE(ITK)
>   IF(ITK_FOUND)
>     INCLUDE(${ITK_USE_FILE})
>   ELSE(ITK_FOUND)
>     MESSAGE(FATAL_ERROR
>             "Cannot build InsightApplications without ITK.  Please set 
> ITK_DIR.")
>   ENDIF(ITK_FOUND)
> 
>   FIND_PACKAGE(FLTK)
>   IF(FLTK_FOUND)
>     INCLUDE_DIRECTORIES(${FLTK_INCLUDE_DIR})
>   ENDIF(FLTK_FOUND)
> 
>   FIND_PACKAGE(VTK)
>   IF (VTK_FOUND)
>       INCLUDE (${VTK_USE_FILE})
>   ENDIF (VTK_FOUND)
> 
> 
> 
> INCLUDE_DIRECTORIES(
> ${InsightApplications_SOURCE_DIR}/Auxiliary/FltkImageViewer
> ${InsightApplications_SOURCE_DIR}/Auxiliary/VtkFltk
> ${InsightApplications_SOURCE_DIR}/Auxiliary/vtk
> ${InsightApplications_BINARY_DIR}/Auxiliary/FltkImageViewer
> ${InsightApplications_BINARY_DIR}/Auxiliary/VtkFltk
> ${RegionGrowingSegmentation_SOURCE_DIR}
> ${RegionGrowingSegmentation_BINARY_DIR}
> )
> 
> 
> FLTK_WRAP_UI( RegionGrowingSegmentation   RegionGrowingSegmentationGUI.fl)
> FLTK_WRAP_UI( RegionGrowingSegmentation2D RegionGrowingSegmentation2DGUI.fl)
> 
> 
> ITK_DISABLE_FLTK_GENERATED_WARNINGS(RegionGrowingSegmentationGUI.fl )
> ITK_DISABLE_FLTK_GENERATED_WARNINGS(RegionGrowingSegmentation2DGUI.fl)
> 
> 
> SET(RegionGrowingSegmentation2D_SRCS
> RegionGrowingSegmentationBase2D.cxx
> RegionGrowingSegmentation2D.cxx
> ${RegionGrowingSegmentation2D_FLTK_UI_SRCS}
> )
> 
> 
> SET(RegionGrowingSegmentation_SRCS
> RegionGrowingSegmentationBase.cxx
> RegionGrowingSegmentation.cxx
> ${RegionGrowingSegmentation_FLTK_UI_SRCS}
> )
> 
> 
> LINK_LIBRARIES (
> ITKCommon
> ITKNumerics
> ITKBasicFilters
> ITKIO
> ITKFltkImageViewer
> ITKVtkFltk
> vtkRendering
> vtkGraphics
> vtkHybrid
> vtkImaging
> vtkIO
> vtkFiltering
> vtkCommon
> )
> 
> 
> ADD_GUI_EXECUTABLE(RegionGrowingSegmentation2D 
> "${RegionGrowingSegmentation2D_SRCS}")
> ADD_GUI_EXECUTABLE(RegionGrowingSegmentation 
> "${RegionGrowingSegmentation_SRCS}")
> 
> 
> Looks like it works. After running cMake, I got a 
> RegionGrowingSegmentation.dsw and received no errors. But when I built 
> the RegionGrowingSegmentation.dsw in VC++ 6.0, it reported that some 
> files(fltkImageViewer.h etc.) were missing. I found these files in 
> Insight ToolKit or InsightApp directory and added them to the local 
> directory one by one. At last it stop asking for files.And some new 
> errors occoured.
> --------------------Configuration: RegionGrowingSegmentation - Win32 
> Debug--------------------
> Compiling...
> RegionGrowingSegmentation.cxx
> E:\RegionGrowingSegmentation_Bin\fltkImageViewer.txx(444) : error C2512: 
> 'ClickPoint' : no appropriate default constructor available
>         C:\Program Files\Microsoft Visual 
> Studio\VC98\INCLUDE\xmemory(66) : while compiling class-template member 
> function 'void __thiscall fltk::ImageViewer<float,unsigned 
> char>::UpdateClickedPoints(void)'
> E:\RegionGrowingSegmentation_Bin\fltkImageViewer.txx(445) : error C2660: 
> 'getClickedPoint' : function does not take 2 parameters
>         C:\Program Files\Microsoft Visual 
> Studio\VC98\INCLUDE\xmemory(66) : while compiling class-template member 
> function 'void __thiscall fltk::ImageViewer<float,unsigned 
> char>::UpdateClickedPoints(void)'
> E:\RegionGrowingSegmentation_Bin\fltkImageViewer.txx(444) : error C2512: 
> 'ClickPoint' : no appropriate default constructor available
>         C:\Program Files\Microsoft Visual 
> Studio\VC98\INCLUDE\xmemory(66) : while compiling class-template member 
> function 'void __thiscall fltk::ImageViewer<short,unsigned 
> char>::UpdateClickedPoints(void)'
> E:\RegionGrowingSegmentation_Bin\fltkImageViewer.txx(445) : error C2660: 
> 'getClickedPoint' : function does not take 2 parameters
>         C:\Program Files\Microsoft Visual 
> Studio\VC98\INCLUDE\xmemory(66) : while compiling class-template member 
> function 'void __thiscall fltk::ImageViewer<short,unsigned 
> char>::UpdateClickedPoints(void)'
> Error executing cl.exe.
> 
> ALL_BUILD - 4 error(s), 0 warning(s)
> 
> I am a novice. Can you tell me how to fix it?
> Or what I have done is totally wrong.I can do it in another way?
> 
> Thank you very much in advance!
> 
> 
> 
> Regards,
> Xing-Sheng Liu
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> Insight-users mailing list
> Insight-users at itk.org
> http://www.itk.org/mailman/listinfo/insight-users


More information about the Insight-users mailing list