2012-10-09 110 views
1

我想編譯一個依賴於很多東西的程序。 我使用並修改了提供的makefile來代表我的計算機設置,但在編譯的最後一步中我一直收到很多未定義的引用。gfortran未定義的參考

引起麻煩的命令行是:

gfortran -o ../cosmomc ParamNames.o Matrix_utils.o settings.o IO.o cmbtypes.o Planck_like.o cmbdata.o WeakLen.o & 
bbn.o lrggettheory.o mpk.o bao.o supernovae.o HST.o SDSSLy-a-v3.o CMB_Cls_simple.o paramdef.o propose.o params_CMB.o & 
calclike.o EstCovmat.o PowellConstrainedMinimize.o minimize.o postprocess.o MCMC.o driver.o /home/darkside/tesis/CosmoMc & 
/likelihood_v4p1/read_archive_map.o /home/darkside/tesis/CosmoMc/likelihood_v4p1/read_fits.o /home/darkside/tesis/CosmoMc/likelihood_v4p1/healpix_types.o /home/darkside/tesis & 
/CosmoMc/likelihood_v4p1/WMAP_7yr_options.o /home/darkside/tesis/CosmoMc/likelihood_v4p1/WMAP_7yr_util.o /home/darkside/tesis & 
/CosmoMc/likelihood_v4p1/WMAP_7yr_tt_pixlike.o /home/darkside/tesis/CosmoMc/likelihood_v4p1/WMAP_7yr_teeebb_pixlike.o /home/darkside/tesis/CosmoMc & 
/likelihood_v4p1/WMAP_7yr_likelihood.o /home/darkside/tesis /CosmoMc/likelihood_v4p1/WMAP_7yr_gibbs.o /home/darkside/tesis & 
/CosmoMc/likelihood_v4p1/WMAP_7yr_tt_beam_ptsrc_chisq.o /home/darkside/tesis/CosmoMc/likelihood_v4p1/br_mod_dist.o & 

-L../camb -lcamb_cosmorec -lblas -llapack -L/usr/lib/gcc & 
/i686-linux-gnu/4.4/ -lstdc++ -L../CosmoRec -lCosmoRec & 
-L/usr/lib -lgsl -lgslcblas -L/usr/lib/i386-linux/gnu/lib & 
-L/home/darkside/tesis/CosmoMc/likelihood_v4p1 -lcfitsio & 
-DMATRIX_SINGLE -O3 -fopenmp -ffree-form -x f95-cpp-input & 
-ffast-math -march=native -funroll-loops -DCOSMOREC -I../camb & 
-I/usr/lib/i386-linux/gnu/include -I/home/darkside/tesis/CosmoMc/likelihood_v4p1 

而且有些錯誤是:

../CosmoRec/libCosmoRec.a(CosmoRec.o): In function `__tcf_0': 
CosmoRec.cpp:(.text+0xb): undefined reference to `std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::~basic_string()' 
CosmoRec.cpp:(.text+0x17): undefined reference to `std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::~basic_string()' 
../CosmoRec/libCosmoRec.a(CosmoRec.o): In function `__tcf_1': 
CosmoRec.cpp:(.text+0x47): undefined reference to `std::basic_string<char, std::char_traits<char>, 
std::allocator<char> >::~basic_string()' 
../CosmoRec/libCosmoRec.a(CosmoRec.o): In function `std::_Vector_base<double, std::allocator<double> 
    >::_M_deallocate(double*, unsigned int) [clone .isra.76]': 

他們都是在G ++編譯的包,所以我想這個問題可能是lstdC++標誌。我試圖將完整的路徑添加到庫和其他選項,但它不起作用。

任何幫助將真正aprecciated。

問候, 利亞

回答

2

你有沒有試圖把-lstdc++在日結尾的鏈接命令?它需要任何對象和依賴它的庫。

+0

你說得對。改變訂單的作品。我使用了一個給定的Makefile,所以我在那裏改變了它。謝謝。 –