Using this example of cmakelists.txt I am getting a linking error for QVTK.  I am fairly sure I installed VTK with QT support.  Is there any other reason I could be getting a linking error?<br><br>Thanks,<br><br>John<br><br>
<div class="gmail_quote">On Mon, Oct 5, 2009 at 2:56 PM, Wagner Sales <span dir="ltr">&lt;<a href="mailto:wsales@gmail.com">wsales@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi John,<br>
<br>
I have a very simple CMakeLists to do this job, since I need to start<br>
one or more project with these libs at a week. This file basically put<br>
the files and supports resources of Qt if you have, and take care<br>
about dependencies in .h uic generated files.<br>
<br>
Here is:<br>
<br>
PROJECT(SegmentationFramework)<br>
CMAKE_MINIMUM_REQUIRED(VERSION 2.4)<br>
# Find ITK<br>
FIND_PACKAGE(ITK)<br>
IF(NOT ITK_DIR)<br>
        MESSAGE(FATAL_ERROR &quot;Please set ITK_DIR&quot;)<br>
ENDIF(NOT ITK_DIR)<br>
INCLUDE(${ITK_USE_FILE})<br>
<br>
# Find VTK<br>
FIND_PACKAGE(VTK)<br>
IF(NOT VTK_DIR)<br>
  MESSAGE(FATAL_ERROR &quot;Please set VTK_DIR.&quot;)<br>
ENDIF(NOT VTK_DIR)<br>
INCLUDE(${VTK_USE_FILE})<br>
<br>
# Find and works only with Qt4 or newer<br>
SET(DESIRED_QT_VERSION 4 CACHE STRING &quot;This project needs Qt4&quot;)<br>
INCLUDE(${CMAKE_ROOT}/Modules/FindQt4.cmake )<br>
SET(QT_USE_QTXML true) # I need XML<br>
SET(QT_USE_QTSVG true) # I need SVG<br>
SET(QT_USE_QTOPENGL true) # I need OpenGL<br>
<br>
INCLUDE(${QT_USE_FILE})<br>
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})<br>
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})<br>
# put in the new group all files are derived from a .ui gui file<br>
SET( qtcpps<br>
        )<br>
# commom cpps ( qt and others )<br>
SET(cpps<br>
        main.cpp)<br>
<br>
<br>
# qtheaders: haves an qobject macro<br>
SET(    qtheaders<br>
        )<br>
# ui files<br>
SET(    uis<br>
        QPoluxSegmentationFilterWidgetBase.ui<br>
        QPoluxSmoothWidgetParametersBase.ui)<br>
<br>
# commom headers - not Qt objects or widgets<br>
SET(    headers<br>
)<br>
#put in this group the qrc files, if haves<br>
SET(QtApp_RCCS )<br>
QT4_ADD_RESOURCES(rccsrcs ${QtApp_RCCS})<br>
QT4_WRAP_UI(uiheaders ${uis})<br>
QT4_WRAP_CPP(mocsrcs ${qtheaders})<br>
<br>
ADD_DEFINITIONS(-DQT_GUI_LIBS -DQT_CORE_LIB)<br>
SET_SOURCE_FILES_PROPERTIES(${qtcpps} PROPERTIES<br>
                            OBJECT_DEPENDS &quot;${uiheaders}&quot;)<br>
if(COMMAND cmake_policy)<br>
<div class="im">      cmake_policy(SET CMP0003 NEW)<br>
endif(COMMAND cmake_policy)<br>
<br>
</div>ADD_EXECUTABLE(myexec ${cpps} ${mocsrcs} ${rccsrcs} ${qtcpps} )<br>
<br>
TARGET_LINK_LIBRARIES( myexec<br>
  QVTK<br>
  ${QT_LIBRARIES}<br>
  vtkRendering<br>
  vtkGraphics<br>
  vtkIO<br>
  vtkCommon<br>
  ${ITK_LIBRARIES}<br>
)<br>
<br>
2009/10/5 John Drescher &lt;<a href="mailto:drescherjm@gmail.com">drescherjm@gmail.com</a>&gt;:<br>
<div><div></div><div class="h5">&gt; On Mon, Oct 5, 2009 at 12:56 PM, John Durkin &lt;<a href="mailto:jrd5084@psu.edu">jrd5084@psu.edu</a>&gt; wrote:<br>
&gt;&gt; John,<br>
&gt;&gt;<br>
&gt;&gt; I appreciate you setting aside some time to help me out.  Perhaps most of my<br>
&gt;&gt; problems stem from my lack of understanding of CMake and its syntax, but<br>
&gt;&gt; would you have a simpler example of a CMakeLists.txt that enable the<br>
&gt;&gt; compilation of .ui files and links ITK, VTK, and QT into a solution.  I<br>
&gt;&gt; tried working with the example you sent me but I&#39;m not positive what to<br>
&gt;&gt; delete, change, or keep.  This guessing game is very inefficient.<br>
&gt;&gt;<br>
&gt;<br>
&gt; Here is a much simpler example. This project is just a simple<br>
&gt; executable and does not have all the macros and internal libraries.<br>
&gt;<br>
&gt; PROJECT(CropDICOMImages)<br>
&gt;<br>
&gt; cmake_minimum_required(VERSION 2.6 FATAL_ERROR)<br>
&gt;<br>
&gt; set (CropDICOMImages_VERSION_MAJOR 0)<br>
&gt; set (CropDICOMImages_VERSION_MINOR 1)<br>
&gt; set (CropDICOMImages_VERSION_PATCH 0)<br>
&gt;<br>
&gt; option (PACKAGE_FOR_INSTALL                     &quot;Package CropDICOMImages for installation.&quot; ON)<br>
&gt;<br>
&gt; IF(WIN32)<br>
&gt;    CMAKE_MINIMUM_REQUIRED(VERSION 2.5 FATAL_ERROR)<br>
&gt;    SET(CMAKE_CXX_FLAGS &quot;/WL /GR /EHsc&quot; )<br>
&gt;    ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS)<br>
&gt; ENDIF(WIN32)<br>
&gt;<br>
&gt; ADD_DEFINITIONS(-DNEED_WL_FILTER)<br>
&gt;<br>
&gt; IF(COMMAND cmake_policy)<br>
&gt;  cmake_policy(SET CMP0003 NEW)<br>
&gt; endif(COMMAND cmake_policy)<br>
&gt;<br>
&gt; SET (LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE INTERNAL<br>
&gt; &quot;Single output directory for building all libraries.&quot;)<br>
&gt; SET (EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin CACHE INTERNAL<br>
&gt; &quot;Single output directory for building all executables.&quot;)<br>
&gt;<br>
&gt; FIND_PACKAGE( Boost REQUIRED )<br>
&gt; FIND_PACKAGE( Qt4 REQUIRED )<br>
&gt; FIND_PACKAGE( ITK REQUIRED )<br>
&gt; FIND_PACKAGE( VTK REQUIRED )<br>
&gt;<br>
&gt; INCLUDE( ${ITK_USE_FILE} )<br>
&gt; INCLUDE( ${VTK_USE_FILE} )<br>
&gt;<br>
&gt; FIND_PATH(ITK_VTK_GLUE_DIR &quot;CMakeLists.txt&quot; PATHS<br>
&gt; ${ITK_SOURCE_DIR}/Wrapping/WrapITK/ExternalProjects/ItkVtkGlue)<br>
&gt; INCLUDE_DIRECTORIES(${ITK_VTK_GLUE_DIR}/src)<br>
&gt;<br>
&gt; INCLUDE_DIRECTORIES( ${QT_INCLUDE_DIR} . Include)<br>
&gt;<br>
&gt; INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIRS} )<br>
&gt;<br>
&gt; INCLUDE( ${QT_USE_FILE} )<br>
&gt; SET( UPMC_CROP_SRCS<br>
&gt;        ./src/main.cxx<br>
&gt;        ./src/mainwindow.cxx<br>
&gt;        ./src/textwidget.cxx<br>
&gt;        ./src/CropImage.cxx<br>
&gt; )<br>
&gt;<br>
&gt; SET( UPMC_CROP_MOC_HDR<br>
&gt;        ./Include/mainwindow.h<br>
&gt;        ./Include/textwidget.h<br>
&gt; )<br>
&gt;<br>
&gt; SET( UPMC_CROP_HDRS<br>
&gt;        ./Include/CropImage.h<br>
&gt; )<br>
&gt;<br>
&gt; # some .ui files<br>
&gt; SET( UPMC_CROP_UIS<br>
&gt;<br>
&gt; )<br>
&gt;<br>
&gt; # and finally an resource file<br>
&gt; SET( UPMC_CROP_RCS<br>
&gt;        ./rc/CropDICOMImages.qrc<br>
&gt; )<br>
&gt;<br>
&gt; # this command will generate rules that will run rcc on all files from<br>
&gt; UPMC_CROP_RCS<br>
&gt; # in result UPMC_CROP_RC_SRCS variable will contain paths to files<br>
&gt; produced by rcc<br>
&gt; QT4_ADD_RESOURCES( UPMC_CROP_RC_SRCS ${UPMC_CROP_RCS} )<br>
&gt;<br>
&gt; # and finally this will run moc:<br>
&gt; QT4_WRAP_CPP( UPMC_CROP_MOC_SRCS ${UPMC_CROP_MOC_HDR} )<br>
&gt;<br>
&gt; # this will run uic on .ui files:<br>
&gt; QT4_WRAP_UI( UPMC_CROP_UI_HDRS ${UPMC_CROP_UIS} )<br>
&gt;<br>
&gt; LINK_LIBRARIES ( CropDICOMImages ${QT_LIBRARIES} ITKCommon<br>
&gt; ITKBasicFilters ITKIO QVTK vtkCommon<br>
&gt; )<br>
&gt;<br>
&gt; ADD_EXECUTABLE( CropDICOMImages ${UPMC_CROP_SRCS}<br>
&gt; ${UPMC_CROP_MOC_SRCS} ${UPMC_CROP_HDRS}<br>
&gt; ${UPMC_CROP_MOC_HDR} ${UPMC_CROP_RC_SRCS} ${UPMC_CROP_UI_HDRS}<br>
&gt; )<br>
&gt;<br>
&gt; #########################################################################################<br>
&gt;<br>
&gt; install(TARGETS CropDICOMImages<br>
&gt;   RUNTIME<br>
&gt;   DESTINATION bin<br>
&gt;   COMPONENT Applications<br>
&gt; )<br>
&gt;<br>
&gt; #########################################################################################<br>
&gt;<br>
&gt; IF(PACKAGE_FOR_INSTALL)<br>
&gt;<br>
&gt; SET(CPACK_PACKAGE_VERSION_MAJOR ${CropDICOMImages_VERSION_MAJOR})<br>
&gt; SET(CPACK_PACKAGE_VERSION_MINOR ${CropDICOMImages_VERSION_MINOR})<br>
&gt; SET(CPACK_PACKAGE_VERSION_PATCH ${CropDICOMImages_VERSION_PATCH})<br>
&gt;<br>
&gt;<br>
&gt; IF(UNIX AND NOT APPLE)<br>
&gt;    INSTALL(TARGETS HyvesDesktop<br>
&gt;        DESTINATION bin<br>
&gt;    )<br>
&gt;    FOREACH(LIB QtCore QtXml QtTest QtGui QtNetwork QtScript)<br>
&gt;        INSTALL(FILES<br>
&gt;            &quot;${QT_LIBRARY_DIR}/lib${LIB}.so.${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}&quot;<br>
&gt;            RENAME &quot;lib${LIB}.so.${QT_VERSION_MAJOR}&quot;<br>
&gt;            DESTINATION bin<br>
&gt;        )<br>
&gt;    ENDFOREACH(LIB)<br>
&gt; ENDIF(UNIX AND NOT APPLE)<br>
&gt;<br>
&gt; IF(WIN32)<br>
&gt;        SET(CPACK_NSIS_COMPRESSOR &quot;/SOLID lzma&quot;)<br>
&gt;        SET(CPACK_PACKAGE_EXECUTABLES &quot;CropDICOMImages&quot; &quot;CropDICOMImages&quot;)<br>
&gt;<br>
&gt;        INSTALL(FILES<br>
&gt;                        &quot;${QT_LIBRARY_DIR}/QtCore${QT_VERSION_MAJOR}.dll&quot;<br>
&gt;                        &quot;${QT_LIBRARY_DIR}/QtXml${QT_VERSION_MAJOR}.dll&quot;<br>
&gt;                        &quot;${QT_LIBRARY_DIR}/QtTest${QT_VERSION_MAJOR}.dll&quot;<br>
&gt;                        &quot;${QT_LIBRARY_DIR}/QtGui${QT_VERSION_MAJOR}.dll&quot;<br>
&gt;                        &quot;${QT_LIBRARY_DIR}/QtNetwork${QT_VERSION_MAJOR}.dll&quot;<br>
&gt;                        &quot;${QT_LIBRARY_DIR}/QtScript${QT_VERSION_MAJOR}.dll&quot;<br>
&gt;                        DESTINATION bin<br>
&gt;                        COMPONENT Applications<br>
&gt;        )<br>
&gt; ENDIF(WIN32)<br>
&gt;<br>
&gt; set(CPACK_COMPONENTS_ALL Applications)<br>
&gt;<br>
&gt; INCLUDE(CPack)<br>
&gt; ENDIF(PACKAGE_FOR_INSTALL)<br>
</div></div>&gt; _______________________________________________<br>
&gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;<br>
&gt; Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;<br>
&gt; Please keep messages on-topic and check the VTK FAQ at: <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
&gt;<br>
&gt; Follow this link to subscribe/unsubscribe:<br>
&gt; <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
&gt;<br>
</blockquote></div><br>