2012-04-13 59 views
0

經歷了這麼多麻煩後,我能夠安裝VXL-1.14.0和編譯opengazer http://www.inference.phy.cam.ac.uk/opengazer/。我跟着它的README和mirkrules http://www.mirkules.com/opengazer/vxl_install_notes.txt的一個非常有用的註釋來修改opengazer的Makefile和相關文件(例如「PointTracker.h」)。例如,在我的Makefile中,我將前幾行更改爲如下所示(vxl頭文件位於「/ usr/local/include/vxl」中,共享庫位於「/ usr/local/lib」中, libvnl_algo.so」和 「libvnl.so」):編譯Opengazer-0.1.2並得到vnl_cholesky.h錯誤

VXLDIR = /usr/local 
VERSION = opengazer-0.1.2 
CPPFLAGS = -Wall -g -O3 
LINKER = -L$(VXLDIR)/lib -L/usr/local/lib -lm -ldl -lvnl -lmvl -lvnl_algo -lvgl -lgthread-2.0 

# change the following line if your vxl library is installed elsewhere 
INCLUDES = $(foreach prefix,/usr/local/include $(VXLDIR)/include $(VXLDIR)/include/vxl, \ 
    $(foreach suffix,/core /vcl /contrib/oxl /core/vnl/algo,-I$(prefix)$(suffix))) 

===

然而,當我編譯,我得到如下錯誤:

LeastSquares.o: In function `LeastSquares::solve()': 
/home/mycomp/Downloads/opengazer-0.1.2/LeastSquares.cpp:27: undefined reference to `vnl_cholesky::vnl_cholesky(vnl_matrix<double> const&, vnl_cholesky::Operation)' 
/home/mycomp/Downloads/opengazer-0.1.2/LeastSquares.cpp:27: undefined reference to `vnl_cholesky::solve(vnl_vector<double> const&) const' 
LeastSquares.o: In function `~vnl_cholesky': 
/usr/local/include/vxl/core/vnl/algo/vnl_cholesky.h:45: undefined reference to `vnl_vector<double>::~vnl_vector()' 
/usr/local/include/vxl/core/vnl/algo/vnl_cholesky.h:45: undefined reference to `vnl_matrix<double>::~vnl_matrix()' 
LeastSquares.o: In function `LeastSquares::solve(double&, double&, double&)': 
/home/mycomp/Downloads/opengazer-0.1.2/LeastSquares.cpp:39: undefined reference to `vnl_vector<double>::~vnl_vector()' 
LeastSquares.o: In function `~vnl_cholesky': 
/usr/local/include/vxl/core/vnl/algo/vnl_cholesky.h:45: undefined reference to `vnl_matrix<double>::~vnl_matrix()' 
/usr/local/include/vxl/core/vnl/algo/vnl_cholesky.h:45: undefined reference to `vnl_vector<double>::~vnl_vector()' 
/usr/local/include/vxl/core/vnl/algo/vnl_cholesky.h:45: undefined reference to `vnl_matrix<double>::~vnl_matrix()' 
/usr/local/include/vxl/core/vnl/algo/vnl_cholesky.h:45: undefined reference to `vnl_matrix<double>::~vnl_matrix()' 
collect2: ld returned 1 exit status 
make: *** [opengazer] Error 1 

誰能誰是熟悉無論是VXL,Opengazer還是編譯C庫都告訴我這裏可能發生了什麼?謝謝。

回答

0

使用的gcc舊版本似乎解決了問題:

sudo apt-get install g++-4.4 

然後換行,它包含g++g++-4.4 Makefile文件。

如果以後出現含糊不清的異常問題,請參閱install notes