[Insight-users] linker errors while compiling landmark mutual
info example as standalone project
Luis Ibanez
luis.ibanez@kitware.com
Fri May 7 01:22:51 EDT 2004
Hi Sachin,
These missing symbols are defined in the base FLTK library.
You are probably missing to provide one (or several) of
the six FLTK components that CMake request from you at
configuration time.
Please look at the Tutorial sessions for instructions on
how to configure an application that uses FLTK.
You will also find a FAQ entry on this topic.
Regards,
Luis
------------------------------
Sachin Jambawalikar wrote:
> Hi ,
>
> I was able to compile landmark mutual info eample as part of
> insight applications on .net 2003 but when i try to make an indepent
> project I get fltk linker errors .
>
> I first compiled fltkimageviewer lib independently .It compiled with no errors
> But when I compile Landmark mutual info as independent porject . I've
> pasted Cmakelist
> files for both fltkviewer and landmark mutual information projects
> I get the following linker errors :
>
> LandmarkInitializedMutualInformationRegistration error LNK2001:
> unresolved external symbol "private: virtual void __thiscall
> Fl_Gl_Window::draw_overlay(void)" (?draw_overlay@Fl_Gl_Window@@EAEXXZ)
> LandmarkInitializedMutualInformationRegistration error LNK2001:
> unresolved external symbol "public: virtual void __thiscall
> Fl_Gl_Window::hide(void)" (?hide@Fl_Gl_Window@@UAEXXZ)
> LandmarkInitializedMutualInformationRegistration error LNK2001:
> unresolved external symbol "public: virtual void __thiscall
> Fl_Gl_Window::show(void)" (?show@Fl_Gl_Window@@UAEXXZ)
> LandmarkInitializedMutualInformationRegistration error LNK2001:
> unresolved external symbol "public: virtual void __thiscall
> Fl_Gl_Window::flush(void)" (?flush@Fl_Gl_Window@@UAEXXZ)
> LandmarkInitializedMutualInformationRegistration error LNK2001:
> unresolved external symbol "public: virtual void __thiscall
> Fl_Gl_Window::resize(int,int,int,int)"
> (?resize@Fl_Gl_Window@@UAEXHHHH@Z)
> LandmarkInitializedMutualInformationRegistration error LNK2001:
> unresolved external symbol "public: virtual int __thiscall
> Fl_Window::handle(int)" (?handle@Fl_Window@@UAEHH@Z)
> LandmarkInitializedMutualInformationRegistration error LNK2001:
> unresolved external symbol "protected: virtual void __thiscall
> Fl_Window::draw(void)" (?draw@Fl_Window@@MAEXXZ)
> LandmarkInitializedMutualInformationRegistration error LNK2019:
> unresolved external symbol "public: virtual __thiscall
> Fl_Window::~Fl_Window(void)" (??1Fl_Window@@UAE@XZ) referenced in
> function $L115474
> LandmarkInitializedMutualInformationRegistration error LNK2001:
> unresolved external symbol "public: virtual __thiscall
> Fl_Window::~Fl_Window(void)" (??1Fl_Window@@UAE@XZ)
>
> .........and a lot more similar fltk related linker errors
>
> cmake for fltkImageviewer and Landmark mutual info are follows :
>
> PROJECT(FltkImageViewer)
>
> 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)
>
> SET(FltkImageViewer_SRCS
> fltkBox3D.cxx fltkCone3D.cxx fltkClippingPlane3DDrawer.cxx
> fltkCylinder3D.cxx
> fltkFrustum3D.cxx fltkGlWindow.cxx fltkGlWindowInteractive.cxx
> fltkGlWindowInteractiveFlat.cxx fltkImage2DViewerWindow.cxx
> fltkRGBImage2DViewerWindow.cxx fltkLightButton.cxx
> fltkProgressBar.cxx fltkShape3D.cxx fltkSphere3D.cxx
> fltkWindowInteractive.cxx fltkTimeProbeGUI.cxx fltkTimeProbesCollector.cxx
> fltkUtils.cxx)
>
> SET(FltkImageViewer_GUI_SRCS fltkClippingPlane3DDrawerGUI.fl
> fltkDisplayGlWindowGUI.fl fltkDisplayGlWindowFlatGUI.fl
> fltkFrustumFunctionControlGUI.fl fltkImageViewerGUI.fl
> fltkImage2DViewerGUI.fl
> fltkRGBImage2DViewerGUI.fl fltkRegularStepGradientDescentGUI.fl
> fltkSlice2DDrawerGUI.fl fltkSlice3DDrawerGUI.fl
> fltkSphereFunctionControlGUI.fl fltkTimeProbesCollectorGUI.fl )
>
> IF(WIN32)
> ADD_DEFINITIONS(-DWIN32)
> ENDIF(WIN32)
>
> INCLUDE_DIRECTORIES(${FltkImageViewer_SOURCE_DIR}
> ${FltkImageViewer_BINARY_DIR} )
>
> ADD_LIBRARY(ITKFltkImageViewer ${FltkImageViewer_SRCS})
>
> TARGET_LINK_LIBRARIES(ITKFltkImageViewer ${FLTK_LIBRARIES} ${OPENGL_glu_LIBRARY}
> ${OPENGL_LIBRARIES})
>
> # Take the list of GUI files, generate .cxx and .h from them and add
> # them to the build process of the target
> FLTK_WRAP_UI(ITKFltkImageViewer ${FltkImageViewer_GUI_SRCS} )
>
> # The fluid-generated fltk sources have many warnings. Disable
> # warnings for the generated files on some compilers.
> IF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.6)
> IF(CMAKE_COMPILER_IS_GNUCXX)
> FOREACH(f ${FltkImageViewer_GUI_SRCS})
> STRING(REGEX REPLACE "\\.fl$" ".cxx" SRC "${f}")
> SET(SRC ${FltkImageViewer_BINARY_DIR}/${SRC})
> SET_SOURCE_FILES_PROPERTIES(${SRC} PROPERTIES COMPILE_FLAGS -w)
> ENDFOREACH(f)
> ENDIF(CMAKE_COMPILER_IS_GNUCXX)
> ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.6)
>
>
> =================================================================
>
> PROJECT(LandMark)
>
>
> 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_PATH(FltkImageViewer_INCLUDE_DIR fltkImageViewer.h)
>
> FIND_LIBRARY(FltkImageViewer_LIBRARY NAMES ITKFltkImageViewer)
>
> SET(FltkImageViewer_FOUND 1)
> FOREACH(var FltkImageViewer_INCLUDE_DIR
> FltkImageViewer_LIBRARY)
> IF(NOT ${var})
> SET(FltkImageViewer_FOUND 0)
> ENDIF(NOT ${var})
> ENDFOREACH(var)
>
>
> IF(UNIX)
> INCLUDE( ${CMAKE_ROOT}/Modules/FindX11.cmake )
> ENDIF(UNIX)
> CONFIGURE_FILE(${LandMark_SOURCE_DIR}/Help/Index.html
> ${LandMark_BINARY_DIR}/Help/Index.html COPYONLY)
>
> INCLUDE_DIRECTORIES(
> ${ITK_SOURCE_DIR}/Code/Common
> ${ITK_SOURCE_DIR}/Code/BasicFilters
> ${ITK_SOURCE_DIR}/Code/IO
> ${ITK_SOURCE_DIR}/Code/Numerics
> ${ITK_SOURCE_DIR}/Code/Numerics/vxl
> ${ITK_SOURCE_DIR}/Code/Numerics/Statistics
> ${ITK_SOURCE_DIR}/Utilities/MetaIO
> ${ITK_SOURCE_DIR}/Utilities/MetaIO/SaptialObject
> ${FltkImageViewer_INCLUDE_DIR}
> ${LandMark_SOURCE_DIR}
> ${LandMark_BINARY_DIR}
> )
>
> ADD_EXECUTABLE(LandmarkInitializedMutualInformationRegistration
> guiMainImplementation.cxx
> LandmarkRegistrator.cxx
> main.cxx
> )
>
> FLTK_WRAP_UI(LandmarkInitializedMutualInformationRegistration guiMain.fl)
> # 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_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.6)
> 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)
> ENDIF(${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 1.6)
> ENDMACRO(ITK_DISABLE_FLTK_GENERATED_WARNINGS)
>
> # Macro for adding resources to GUI application on the Mac
>
> ITK_DISABLE_FLTK_GENERATED_WARNINGS(guiMain.fl)
>
> TARGET_LINK_LIBRARIES (LandmarkInitializedMutualInformationRegistration
> ITKIO ITKMetaIO ITKBasicFilters ITKStatistics
> ${FltkImageViewer_LIBRARY} )
>
>
>
> regards
>
> --Sachin
> _______________________________________________
> Insight-users mailing list
> Insight-users@itk.org
> http://www.itk.org/mailman/listinfo/insight-users
>
More information about the Insight-users
mailing list