[ITK-users] VS input library files

Gib Bogle g.bogle at auckland.ac.nz
Tue Aug 22 15:08:36 EDT 2017


Thanks Francois, that makes it all clear.  Yes, I did build VTK on a different computer, and have upgraded Qt.  Since it is simpler to just delete the unwanted Qt libraries in VS than to customise all the cmake files, I'll just stick to what I'm doing.


Cheers, Gib

________________________________
From: Francois Budin <francois.budin at kitware.com>
Sent: Wednesday, 23 August 2017 1:32 a.m.
To: Gib Bogle
Cc: insight-users at itk.org
Subject: Re: [ITK-users] VS input library files

Hello Gib,

It seems that you built ITK with the VTK bridge (CMake option Module_ITKVtkGlue), and you probably built VTK with Qt support. It is surprising that the Qt libraries do not match the Qt version on your computer. Did you build VTK on a different computer?
To be able to compile any project that you link against ITK, CMake needs to know of all the dependencies of ITK. Because ITK is still using the CMake 2 paradigm (project based dependencies, vs CMake 3 that is target based), if you do not specify which module needs to be loaded, all the dependencies will be added to all your targets.
If you want to limit the number of dependencies, you can specify the ITK components that are loaded by CMake:
find_package(ITK COMPONENTS {add required components here} )

Another solution is to rebuild ITK without VTK support.
Hope this helps,
Francois

On Tue, Aug 22, 2017 at 12:02 AM, Gib Bogle <g.bogle at auckland.ac.nz<mailto:g.bogle at auckland.ac.nz>> wrote:

I am building applications using ITK on Windows 7, with cmake and Visual Studio 2010.  The CMakeLists.txt file is very simple:


PROJECT(compress)
FIND_PACKAGE(ITK)
IF(ITK_FOUND)
INCLUDE(${ITK_USE_FILE})
ELSE(ITK_FOUND)
MESSAGE(FATAL_ERROR
"ITK not found. Please set ITK_DIR.")
ENDIF(ITK_FOUND)

set(PROJECTNAME "compress")
ADD_EXECUTABLE(${PROJECTNAME} compress.cpp)
TARGET_LINK_LIBRARIES(${PROJECTNAME} ${ITK_LIBRARIES} )


and the cmake command is:


cmake -G "Visual Studio 10 Win64"


The .vcproj file created has, in the Linker > Input > Additional Dependencies list not only what looks like all the ITK libraries (about 78) but also a whole lot of VTK libraries (about 35) and 3 Qt libraries.  This is for a program that uses neither VTK nor Qt.  I don't understand why all these libraries are included.  I guess it doesn't really matter, since they don't finish up in the .exe, but it is a nuisance because for some reason the Qt libraries that it expects are a different version from those on the computer, which means I have to either delete those libraries from the list or change the version number.  If I was having to do this just a couple of times it wouldn't be worth worrying about, but I am rebuilding on a new machine a large number of programs that all have this issue.


It would help to have a better understanding of the system that generates this list.  Maybe there is a simple way to prevent unwanted libraries from getting into the list.

_____________________________________
Powered by www.kitware.com<http://www.kitware.com>

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://www.kitware.com/products/protraining.php

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/insight-users


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-users/attachments/20170822/f1582f4e/attachment.html>


More information about the Insight-users mailing list