From: James K. <jk...@jh...> - 2007-02-19 16:28:29
|
I'm a VXL/VNL newbie and am having some difficulty getting VNL to work. I wrote a simple code that creates a matrix and takes its inverse. The compiler can't find the v3p_netlib_initialize and v3p_netlib_dsvdc_ functions. I believe VXL automatically installs netlib - please correct me if I am wrong. The source code, CMakeLists.txt, and the compile errors are below. I'm sure this is something simple and dumb. Any help would be greatly appreciated. Thanks, James Kinsey =====Source Code============ #include <vnl/vnl_vector.h> #include <vnl/vnl_matrix.h> #include <vcl_iostream.h> #include <vnl/algo/vnl_matrix_inverse.h> #include <vnl/vnl_math.h> int main() { vnl_matrix<double> A(3,3); A(0,0) = 1.0; A(0,1) = 0.3; A(0,2) = -0.7; A(1,0) = 1.0; A(1,1) = 1.3; A(1,2) = -6.7; A(2,0) = -2.0; A(2,1) = 9.3; A(2,2) = -2.7; vcl_cerr << A << "\n"; vcl_cerr << vnl_matrix_inverse<double>(A) << "\n"; return 0; } ======= CMAkeLists.txt ================= # vxl/vnl/examples/CMakeLists.txt PROJECT( vnlbasics ) INCLUDE_DIRECTORIES( /home/jkinsey/code/vxl/vxl_source/vcl /home/jkinsey/code/vxl/vxl_source/core /home/jkinsey/code/vxl/vxl_source/v3p /home/jkinsey/code/vxl/bin/vcl /home/jkinsey/code/vxl/bin/core /home/jkinsey/code/vxl/bin/v3p) LINK_DIRECTORIES( /home/jkinsey/code/vxl/bin/lib) ADD_EXECUTABLE(vnlbasics main.cpp) TARGET_LINK_LIBRARIES( vnlbasics vcl vnl_algo vnl vul ) ============ Compile Errors =================== [jkinsey:bin/]$ make Scanning dependencies of target vnlbasics [100%] Building CXX object CMakeFiles/vnlbasics.dir/main.o Linking CXX executable vnlbasics /home/jkinsey/code/vxl/bin/lib/libvnl_algo.a(vnl_svd+double-.o)(.gnu.linkonce.t._ZN22v3p_netlib_initializerC1Ev+0x7): In function `v3p_netlib_initializer::v3p_netlib_initializer()': : undefined reference to `v3p_netlib_initialize' /home/jkinsey/code/vxl/bin/lib/libvnl_algo.a(vnl_svd+double-.o)(.gnu.linkonce.t._Z16vnl_linpack_svdcPdPKlS1_S1_S_S_S_S1_S_S1_S_S1_Pl+0x31): In function `vnl_linpack_svdc(double*, long const*, long const*, long const*, double*, double*, double*, long const*, double*, long const*, double*, long const*, long*)': : undefined reference to `v3p_netlib_dsvdc_' collect2: ld returned 1 exit status make[2]: *** [vnlbasics] Error 1 make[1]: *** [CMakeFiles/vnlbasics.dir/all] Error 2 make: *** [all] Error 2 ========================================== -- James C. Kinsey, Ph.D. Postdoctoral Fellow Dynamical Systems and Controls Lab Department of Mechanical Engineering The Johns Hopkins University |