Hello everyone, I write an example to test the matrix operation of vnl, and compile it in g++ (gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu)) under Ubuntu 7.04. It outputs many errors in linking: (This exmple works well in MSVC 2005). Anyone knows how to fix it ?

Header files needed in the example:
#include <vcl_iostream.h>
#include <vnl/algo/vnl_matrix_inverse.h>
#include <vnl/algo/vnl_svd.h>
#include <vnl/algo/vnl_qr.h>
#include <vnl/algo/vnl_ldl_cholesky.h>
#include <vnl/algo/vnl_cholesky.h>
#include <vnl/algo/vnl_symmetric_eigensystem.h>
#include <vnl/algo/vnl_real_eigensystem.h>
#include <vnl/vnl_transpose.h>
#include <vnl/vnl_matlab_print.h>

Linking error:

harrison@harrison-laptop:~$  g++ -o example_matrix_operation  example_matrix_operation.cpp  -I/usr/local/include/vxl/core -I/usr/local/include/vxl/vcl -L/usr/local/lib -lvnl -lvnl_algo -lvcl -lv3p_netlib
/usr/local/lib/libvnl_algo.a(vnl_real_eigensystem.o): In function `vnl_real_eigensystem::vnl_real_eigensystem(vnl_matrix<double> const&)':
vnl_real_eigensystem.cxx:(.text+0x154): undefined reference to `vnl_fortran_copy<double>::vnl_fortran_copy(vnl_matrix<double> const&)'
vnl_real_eigensystem.cxx:(.text+0x18a): undefined reference to `vnl_vector<long>::vnl_vector(unsigned int)'
vnl_real_eigensystem.cxx:(.text+0x686): undefined reference to `vnl_vector<long>::~vnl_vector()'
vnl_real_eigensystem.cxx:(.text+0x69f): undefined reference to `vnl_vector<long>::~vnl_vector()'
vnl_real_eigensystem.cxx:(.text+0x70a): undefined reference to `vnl_fortran_copy<double>::~vnl_fortran_copy()'
vnl_real_eigensystem.cxx:(.text+0x726): undefined reference to `vnl_fortran_copy<double>::~vnl_fortran_copy()'
/usr/local/lib/libvnl_algo.a(vnl_real_eigensystem.o): In function `vnl_real_eigensystem::vnl_real_eigensystem(vnl_matrix<double> const&)':
vnl_real_eigensystem.cxx:(.text+0x882): undefined reference to `vnl_fortran_copy<double>::vnl_fortran_copy(vnl_matrix<double> const&)'
vnl_real_eigensystem.cxx:(.text+0x8b8): undefined reference to `vnl_vector<long>::vnl_vector(unsigned int)'
vnl_real_eigensystem.cxx:(.text+0xdb4): undefined reference to `vnl_vector<long>::~vnl_vector()'
vnl_real_eigensystem.cxx:(.text+0xdcd): undefined reference to `vnl_vector<long>::~vnl_vector()'
vnl_real_eigensystem.cxx:(.text+0xe38): undefined reference to `vnl_fortran_copy<double>::~vnl_fortran_copy()'
vnl_real_eigensystem.cxx:(.text+0xe54): undefined reference to `vnl_fortran_copy<double>::~vnl_fortran_copy()'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_symmetric_eigensystem_compute(vnl_matrix<float> const&, vnl_matrix<float>&, vnl_vector<float>&)':
vnl_symmetric_eigensystem.cxx:(.text+0x411): undefined reference to `void vnl_copy<vnl_matrix<float>, vnl_matrix<double> >(vnl_matrix<float> const&, vnl_matrix<double>&)'
vnl_symmetric_eigensystem.cxx:(.text+0x43f): undefined reference to `void vnl_copy<vnl_matrix<double>, vnl_matrix<float> >(vnl_matrix<double> const&, vnl_matrix<float>&)'
vnl_symmetric_eigensystem.cxx:(.text+0x451): undefined reference to `void vnl_copy<vnl_vector<double>, vnl_vector<float> >(vnl_vector<double> const&, vnl_vector<float>&)'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_diag_matrix<float>::~vnl_diag_matrix()':
vnl_symmetric_eigensystem.cxx:(.text._ZN15vnl_diag_matrixIfED1Ev[vnl_diag_matrix<float>::~vnl_diag_matrix()]+0xd): undefined reference to `vnl_vector<float>::~vnl_vector()'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_diag_matrix<float>::vnl_diag_matrix(unsigned int)':
vnl_symmetric_eigensystem.cxx:(.text._ZN15vnl_diag_matrixIfEC1Ej[vnl_diag_matrix<float>::vnl_diag_matrix(unsigned int)]+0x14): undefined reference to `vnl_vector<float>::vnl_vector(unsigned int)'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_vector<float>::operator*(vnl_matrix<float> const&) const':
vnl_symmetric_eigensystem.cxx:(.text._ZNK10vnl_vectorIfEmlERK10vnl_matrixIfE[vnl_vector<float>::operator*(vnl_matrix<float> const&) const]+0x26): undefined reference to `vnl_vector<float>::vnl_vector(vnl_vector<float> const&, vnl_matrix<float> const&, vnl_tag_mul)'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_vector<float> operator*<float>(vnl_matrix<float> const&, vnl_vector<float> const&)':
vnl_symmetric_eigensystem.cxx:(.text._ZmlIfE10vnl_vectorIT_ERK10vnl_matrixIS1_ERKS2_[vnl_vector<float> operator*<float>(vnl_matrix<float> const&, vnl_vector<float> const&)]+0x26): undefined reference to `vnl_vector<float>::vnl_vector(vnl_matrix<float> const&, vnl_vector<float> const&, vnl_tag_mul)'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_symmetric_eigensystem<float>::solve(vnl_vector<float> const&)':
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfE5solveERK10vnl_vectorIfE[vnl_symmetric_eigensystem<float>::solve(vnl_vector<float> const&)]+0x3c): undefined reference to `vnl_vector<float>::vnl_vector(unsigned int)'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfE5solveERK10vnl_vectorIfE[vnl_symmetric_eigensystem<float>::solve(vnl_vector<float> const&)]+0x58): undefined reference to `vnl_diag_matrix<float>::solve(vnl_vector<float> const&, vnl_vector<float>*) const'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfE5solveERK10vnl_vectorIfE[vnl_symmetric_eigensystem<float>::solve(vnl_vector<float> const&)]+0x82): undefined reference to `vnl_vector<float>::~vnl_vector()'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfE5solveERK10vnl_vectorIfE[vnl_symmetric_eigensystem<float>::solve(vnl_vector<float> const&)]+0x95): undefined reference to `vnl_vector<float>::~vnl_vector()'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfE5solveERK10vnl_vectorIfE[vnl_symmetric_eigensystem<float>::solve(vnl_vector<float> const&)]+0xa5): undefined reference to `vnl_vector<float>::~vnl_vector()'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfE5solveERK10vnl_vectorIfE[vnl_symmetric_eigensystem<float>::solve(vnl_vector<float> const&)]+0xb8): undefined reference to `vnl_vector<float>::~vnl_vector()'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_symmetric_eigensystem<float>::solve(vnl_vector<float> const&, vnl_vector<float>*)':
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfE5solveERK10vnl_vectorIfEPS2_[vnl_symmetric_eigensystem<float>::solve(vnl_vector<float> const&, vnl_vector<float>*)]+0x31): undefined reference to `vnl_vector<float>::operator=(vnl_vector<float> const&)'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfE5solveERK10vnl_vectorIfEPS2_[vnl_symmetric_eigensystem<float>::solve(vnl_vector<float> const&, vnl_vector<float>*)]+0x3c): undefined reference to `vnl_vector<float>::~vnl_vector()'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfE5solveERK10vnl_vectorIfEPS2_[vnl_symmetric_eigensystem<float>::solve(vnl_vector<float> const&, vnl_vector<float>*)]+0x4f): undefined reference to `vnl_vector<float>::~vnl_vector()'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_matrix<float> operator*<float>(vnl_matrix<float> const&, vnl_diag_matrix<float> const&)':
vnl_symmetric_eigensystem.cxx:(.text._ZmlIfE10vnl_matrixIT_ERKS2_RK15vnl_diag_matrixIS1_E[vnl_matrix<float> operator*<float>(vnl_matrix<float> const&, vnl_diag_matrix<float> const&)]+0x6e): undefined reference to `vnl_matrix<float>::vnl_matrix(unsigned int, unsigned int)'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_matrix<float>::operator*(vnl_matrix<float> const&) const':
vnl_symmetric_eigensystem.cxx:(.text._ZNK10vnl_matrixIfEmlERKS0_[vnl_matrix<float>::operator*(vnl_matrix<float> const&) const]+0x26): undefined reference to `vnl_matrix<float>::vnl_matrix(vnl_matrix<float> const&, vnl_matrix<float> const&, vnl_tag_mul)'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_symmetric_eigensystem<float>::inverse_square_root() const':
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE19inverse_square_rootEv[vnl_symmetric_eigensystem<float>::inverse_square_root() const]+0x19c): undefined reference to `vnl_matrix<float>::transpose() const'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE19inverse_square_rootEv[vnl_symmetric_eigensystem<float>::inverse_square_root() const]+0x1e5): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE19inverse_square_rootEv[vnl_symmetric_eigensystem<float>::inverse_square_root() const]+0x1f8): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE19inverse_square_rootEv[vnl_symmetric_eigensystem<float>::inverse_square_root() const]+0x208): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE19inverse_square_rootEv[vnl_symmetric_eigensystem<float>::inverse_square_root() const]+0x21b): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_symmetric_eigensystem<float>::square_root() const':
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE11square_rootEv[vnl_symmetric_eigensystem<float>::square_root() const]+0x192): undefined reference to `vnl_matrix<float>::transpose() const'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE11square_rootEv[vnl_symmetric_eigensystem<float>::square_root() const]+0x1db): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE11square_rootEv[vnl_symmetric_eigensystem<float>::square_root() const]+0x1ee): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE11square_rootEv[vnl_symmetric_eigensystem<float>::square_root() const]+0x1fe): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE11square_rootEv[vnl_symmetric_eigensystem<float>::square_root() const]+0x211): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_symmetric_eigensystem<float>::pinverse() const':
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE8pinverseEv[vnl_symmetric_eigensystem<float>::pinverse() const]+0x122): undefined reference to `vnl_matrix<float>::transpose() const'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE8pinverseEv[vnl_symmetric_eigensystem<float>::pinverse() const]+0x16b): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE8pinverseEv[vnl_symmetric_eigensystem<float>::pinverse() const]+0x17e): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE8pinverseEv[vnl_symmetric_eigensystem<float>::pinverse() const]+0x18e): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE8pinverseEv[vnl_symmetric_eigensystem<float>::pinverse() const]+0x1a1): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_symmetric_eigensystem<float>::recompose() const':
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE9recomposeEv[vnl_symmetric_eigensystem<float>::recompose() const]+0x1e): undefined reference to `vnl_matrix<float>::transpose() const'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE9recomposeEv[vnl_symmetric_eigensystem<float>::recompose() const]+0x6a): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE9recomposeEv[vnl_symmetric_eigensystem<float>::recompose() const]+0x7d): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE9recomposeEv[vnl_symmetric_eigensystem<float>::recompose() const]+0x8d): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE9recomposeEv[vnl_symmetric_eigensystem<float>::recompose() const]+0xa0): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_symmetric_eigensystem<float>::get_eigenvector(int) const':
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE15get_eigenvectorEi[vnl_symmetric_eigensystem<float>::get_eigenvector(int) const]+0x44): undefined reference to `vnl_matrix<float>::extract(unsigned int, unsigned int, unsigned int, unsigned int) const'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE15get_eigenvectorEi[vnl_symmetric_eigensystem<float>::get_eigenvector(int) const]+0x62): undefined reference to `vnl_vector<float>::vnl_vector(float const*, unsigned int)'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE15get_eigenvectorEi[vnl_symmetric_eigensystem<float>::get_eigenvector(int) const]+0x6d): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
vnl_symmetric_eigensystem.cxx:(.text._ZNK25vnl_symmetric_eigensystemIfE15get_eigenvectorEi[vnl_symmetric_eigensystem<float>::get_eigenvector(int) const]+0x80): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_symmetric_eigensystem<float>::vnl_symmetric_eigensystem(vnl_matrix<float> const&)':
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfEC1ERK10vnl_matrixIfE[vnl_symmetric_eigensystem<float>::vnl_symmetric_eigensystem(vnl_matrix<float> const&)]+0x37): undefined reference to `vnl_matrix<float>::vnl_matrix(unsigned int, unsigned int)'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfEC1ERK10vnl_matrixIfE[vnl_symmetric_eigensystem<float>::vnl_symmetric_eigensystem(vnl_matrix<float> const&)]+0x62): undefined reference to `vnl_vector<float>::vnl_vector(unsigned int)'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfEC1ERK10vnl_matrixIfE[vnl_symmetric_eigensystem<float>::vnl_symmetric_eigensystem(vnl_matrix<float> const&)]+0xd4): undefined reference to `vnl_vector<float>::~vnl_vector()'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfEC1ERK10vnl_matrixIfE[vnl_symmetric_eigensystem<float>::vnl_symmetric_eigensystem(vnl_matrix<float> const&)]+0xe7): undefined reference to `vnl_vector<float>::~vnl_vector()'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfEC1ERK10vnl_matrixIfE[vnl_symmetric_eigensystem<float>::vnl_symmetric_eigensystem(vnl_matrix<float> const&)]+0x119): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
/usr/local/lib/libvnl_algo.a(vnl_symmetric_eigensystem.o): In function `vnl_symmetric_eigensystem<float>::vnl_symmetric_eigensystem(vnl_matrix<float> const&)':
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfEC2ERK10vnl_matrixIfE[vnl_symmetric_eigensystem<float>::vnl_symmetric_eigensystem(vnl_matrix<float> const&)]+0x37): undefined reference to `vnl_matrix<float>::vnl_matrix(unsigned int, unsigned int)'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfEC2ERK10vnl_matrixIfE[vnl_symmetric_eigensystem<float>::vnl_symmetric_eigensystem(vnl_matrix<float> const&)]+0x62): undefined reference to `vnl_vector<float>::vnl_vector(unsigned int)'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfEC2ERK10vnl_matrixIfE[vnl_symmetric_eigensystem<float>::vnl_symmetric_eigensystem(vnl_matrix<float> const&)]+0xd4): undefined reference to `vnl_vector<float>::~vnl_vector()'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfEC2ERK10vnl_matrixIfE[vnl_symmetric_eigensystem<float>::vnl_symmetric_eigensystem(vnl_matrix<float> const&)]+0xe7): undefined reference to `vnl_vector<float>::~vnl_vector()'
vnl_symmetric_eigensystem.cxx:(.text._ZN25vnl_symmetric_eigensystemIfEC2ERK10vnl_matrixIfE[vnl_symmetric_eigensystem<float>::vnl_symmetric_eigensystem(vnl_matrix<float> const&)]+0x119): undefined reference to `vnl_matrix<float>::~vnl_matrix()'
/usr/local/lib/libvnl_algo.a(vnl_svd+double-.o): In function `vnl_svd<double>::vnl_svd(vnl_matrix<double> const&, double)':
vnl_svd+double-.cxx:(.text._ZN7vnl_svdIdEC1ERK10vnl_matrixIdEd[vnl_svd<double>::vnl_svd(vnl_matrix<double> const&, double)]+0x162): undefined reference to `vnl_fortran_copy<double>::vnl_fortran_copy(vnl_matrix<double> const&)'
vnl_svd+double-.cxx:(.text._ZN7vnl_svdIdEC1ERK10vnl_matrixIdEd[vnl_svd<double>::vnl_svd(vnl_matrix<double> const&, double)]+0x649): undefined reference to `vnl_fortran_copy<double>::~vnl_fortran_copy()'
vnl_svd+double-.cxx:(.text._ZN7vnl_svdIdEC1ERK10vnl_matrixIdEd[vnl_svd<double>::vnl_svd(vnl_matrix<double> const&, double)]+0x665): undefined reference to `vnl_fortran_copy<double>::~vnl_fortran_copy()'
/usr/local/lib/libvnl_algo.a(vnl_svd+double-.o): In function `vnl_svd<double>::vnl_svd(vnl_matrix<double> const&, double)':
vnl_svd+double-.cxx:(.text._ZN7vnl_svdIdEC2ERK10vnl_matrixIdEd[vnl_svd<double>::vnl_svd(vnl_matrix<double> const&, double)]+0x162): undefined reference to `vnl_fortran_copy<double>::vnl_fortran_copy(vnl_matrix<double> const&)'
vnl_svd+double-.cxx:(.text._ZN7vnl_svdIdEC2ERK10vnl_matrixIdEd[vnl_svd<double>::vnl_svd(vnl_matrix<double> const&, double)]+0x649): undefined reference to `vnl_fortran_copy<double>::~vnl_fortran_copy()'
vnl_svd+double-.cxx:(.text._ZN7vnl_svdIdEC2ERK10vnl_matrixIdEd[vnl_svd<double>::vnl_svd(vnl_matrix<double> const&, double)]+0x665): undefined reference to `vnl_fortran_copy<double>::~vnl_fortran_copy()'
/usr/local/lib/libvnl_algo.a(vnl_qr+double-.o): In function `vnl_qr<double>::~vnl_qr()':
vnl_qr+double-.cxx:(.text._ZN6vnl_qrIdED1Ev[vnl_qr<double>::~vnl_qr()]+0x61): undefined reference to `vnl_vector<long>::~vnl_vector()'
vnl_qr+double-.cxx:(.text._ZN6vnl_qrIdED1Ev[vnl_qr<double>::~vnl_qr()]+0x7d): undefined reference to `vnl_vector<long>::~vnl_vector()'
/usr/local/lib/libvnl_algo.a(vnl_qr+double-.o): In function `vnl_qr<double>::~vnl_qr()':
vnl_qr+double-.cxx:(.text._ZN6vnl_qrIdED2Ev[vnl_qr<double>::~vnl_qr()]+0x61): undefined reference to `vnl_vector<long>::~vnl_vector()'
vnl_qr+double-.cxx:(.text._ZN6vnl_qrIdED2Ev[vnl_qr<double>::~vnl_qr()]+0x7d): undefined reference to `vnl_vector<long>::~vnl_vector()'
/usr/local/lib/libvnl_algo.a(vnl_qr+double-.o): In function `vnl_qr<double>::vnl_qr(vnl_matrix<double> const&)':
vnl_qr+double-.cxx:(.text._ZN6vnl_qrIdEC1ERK10vnl_matrixIdE[vnl_qr<double>::vnl_qr(vnl_matrix<double> const&)]+0x6a): undefined reference to `vnl_vector<long>::vnl_vector(unsigned int)'
vnl_qr+double-.cxx:(.text._ZN6vnl_qrIdEC1ERK10vnl_matrixIdE[vnl_qr<double>::vnl_qr(vnl_matrix<double> const&)]+0x152): undefined reference to `vnl_vector<long>::fill(long const&)'
vnl_qr+double-.cxx:(.text._ZN6vnl_qrIdEC1ERK10vnl_matrixIdE[vnl_qr<double>::vnl_qr(vnl_matrix<double> const&)]+0x20d): undefined reference to `vnl_vector<long>::~vnl_vector()'
/usr/local/lib/libvnl_algo.a(vnl_qr+double-.o): In function `vnl_qr<double>::vnl_qr(vnl_matrix<double> const&)':
vnl_qr+double-.cxx:(.text._ZN6vnl_qrIdEC2ERK10vnl_matrixIdE[vnl_qr<double>::vnl_qr(vnl_matrix<double> const&)]+0x6a): undefined reference to `vnl_vector<long>::vnl_vector(unsigned int)'
vnl_qr+double-.cxx:(.text._ZN6vnl_qrIdEC2ERK10vnl_matrixIdE[vnl_qr<double>::vnl_qr(vnl_matrix<double> const&)]+0x152): undefined reference to `vnl_vector<long>::fill(long const&)'
vnl_qr+double-.cxx:(.text._ZN6vnl_qrIdEC2ERK10vnl_matrixIdE[vnl_qr<double>::vnl_qr(vnl_matrix<double> const&)]+0x20d): undefined reference to `vnl_vector<long>::~vnl_vector()'
collect2: