Gib Bogle
2017-08-22 04:02:14 UTC
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.
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.