[ITK-dev] Problems with the integration of LASPack package into ITK

Fotis Drakopoulos fdrakopo at gmail.com
Fri Jul 25 15:32:25 EDT 2014


Hi ITK developers,

I am working on the integration of the LASPack package (
http://www.netlib.org/linalg/) inside the ITK for solving for solving large
sparse systems of linear equations with iterative methods.
I created a new folder with name laspack under the directory :
Modules/ThirdParty/VNL/src/vxl/v3p/netlib/ with the following CMakeList.txt
:

*PROJECT( laspack )*

*# List sources for each library component.*
*SET(V3P_NETLIB_laspack_SOURCES*
*    eigenval.c*
*    errhandl.c*
*    factor.c*
*    itersolv.c*
*    matrix.c*
*    mlsolv.c*
*    operats.c*
*    precond.c*
*    qmatrix.c*
*    rtc.c*
*    vector.c*
*    eigenval.h*
*    elcmp.h*
*    errhandl.h*
*    factor.h*
*    itersolv.h*
*    lastypes.h*
*    matrix.h*
*    mlsolv.h*
*    operats.h*
*    precond.h*
*    qmatrix.h*
*    rtc.h*
*    vector.h*
*    version.h*
*    copyrght.h*
*    xc/getopts.c*
*    xc/xstring.c*
*    xc/getopts.h*
*    xc/version.h*
*    xc/xstring.h*
*    xc/xtypes.h*
*  )*

*# Create a library .*
*ADD_LIBRARY(itkv3p_laspack ${V3P_NETLIB_laspack_SOURCES})*
*IF(UNIX)*
*  TARGET_LINK_LIBRARIES( itkv3p_laspack m )*
*ENDIF(UNIX)*
*IF(ITK_LIBRARY_PROPERTIES)*
*  SET_TARGET_PROPERTIES(itkv3p_laspack PROPERTIES
${ITK_LIBRARY_PROPERTIES})*
*ENDIF(ITK_LIBRARY_PROPERTIES)*

*IF(NOT VXL_INSTALL_NO_LIBRARIES)*
*  INSTALL(TARGETS itkv3p_laspack*
*    EXPORT ${VXL_INSTALL_EXPORT_NAME}*
*    RUNTIME DESTINATION ${VXL_INSTALL_RUNTIME_DIR} COMPONENT
RuntimeLibraries*
*    LIBRARY DESTINATION ${VXL_INSTALL_LIBRARY_DIR} COMPONENT
RuntimeLibraries*
*    ARCHIVE DESTINATION ${VXL_INSTALL_ARCHIVE_DIR} COMPONENT Development)*
*ENDIF(NOT VXL_INSTALL_NO_LIBRARIES)*
*IF(NOT VXL_INSTALL_NO_DEVELOPMENT)*
*  INSTALL_NOBASE_HEADER_FILES(${VXL_INSTALL_INCLUDE_DIR}
${V3P_NETLIB_laspack_SOURCES})*
*ENDIF(NOT VXL_INSTALL_NO_DEVELOPMENT)*

Also in the CMakeLists.txt located in direcory : Modules/ThirdParty/VNL/src
I added the new *itkv3p_laspack* library as follows:

*add_subdirectory(vxl)*
*foreach(lib itkvcl itkv3p_netlib itkv3p_lsqr itkv3p_laspack itktestlib
itkvnl itkvnl_algo)*
*  itk_module_target(${lib} NO_INSTALL)*
*endforeach()*

When I build ITK I do not get any errors and the *libitkv3p_laspack. a*  is
normally created like all the other ITK libraries.
However when I compile an external project which links to ITK with
TARGET_LINK_LIBRARIES(PROJECT_NAME ${ITK_LIBRARIES}),   I am getting the
following link error:

*/home/fdrakopo/local/bin/ITKDev/release/lib/libitkvnl_algo-4.1.a(vnl_sparse_iterative_solver.cxx.o):
In function
`vnl_sparse_iterative_solver::vnl_sparse_iterative_solver(vnl_sparse_matrix<double>
const&)':*
*vnl_sparse_iterative_solver.cxx:(.text+0x6a): undefined reference to
`Q_SetName(QMatrixType*, char*)'*
*collect2: error: ld returned 1 exit status*
*make[2]: *** [PAPBNRR] Error 1*
*make[1]: *** [CMakeFiles/PAPBNRR.dir/all] Error 2*
*make: *** [all] Error 2*

The vnl_sparse_iterative_solver is a new class I created under :
Modules/ThirdParty/VNL/src/vxl/core/vnl/algo
and encapsulates the implemented calls (functions, etc.) to the LASPack
package (similarly to vnl_sparse_lu class that calls Kenneth's Kundert
SPARSE package).
Also the itkvnl_algo inks to itkv3p_laspack :
*TARGET_LINK_LIBRARIES( itkvnl_algo ${NETLIB_LIBRARIES} itkvnl itkv3p_lsqr
itkv3p_laspack ) *

Any ideas how can I solve the above link error?

Regards,
Fotis Drakopoulos
CRTC lab
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/insight-developers/attachments/20140725/43b46566/attachment.html>


More information about the Insight-developers mailing list