Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ gfortran未定义的引用_C++_Fortran_G++_Linker Errors_Gfortran - Fatal编程技术网

C++ gfortran未定义的引用

C++ gfortran未定义的引用,c++,fortran,g++,linker-errors,gfortran,C++,Fortran,G++,Linker Errors,Gfortran,我试图编译一个依赖于很多东西的程序。 我使用并修改提供的makefile来代表我的计算机设置,但在编译的最后一步中,我不断得到许多未定义的引用 导致故障的命令行是: 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 HS

我试图编译一个依赖于很多东西的程序。 我使用并修改提供的makefile来代表我的计算机设置,但在编译的最后一步中,我不断得到许多未定义的引用

导致故障的命令行是:

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]':
。/CosmoRec/libCosmoRec.a(CosmoRec.o):在函数“\uuu tcf\u0”中:
CosmoRec.cpp:(.text+0xb):对“std::basic_string::~basic_string()”的未定义引用
CosmoRec.cpp:(.text+0x17):对“std::basic_string::~basic_string()”的未定义引用
../CosmoRec/libCosmoRec.a(CosmoRec.o):在函数“\uu tcf\u 1”中:
CosmoRec.cpp:(.text+0x47):对“std::basic_string::~basic_string()”的未定义引用
../CosmoRec/libCosmoRec.a(CosmoRec.o):在函数“std::_Vector_base::_M_deallocate(double*,unsigned int)[clone.isra.76]”中:
它们都在用g++编译的包中,所以我想问题可能是lstdc++标志。我试图将完整路径添加到库和其他选项中,但没有成功

任何帮助都是非常必要的

问候,,
您是否尝试过将
-lstdc++
放在link命令的末尾?它需要位于依赖它的任何对象和库之后。

你说得对。改变顺序是有效的。我使用的是一个给定的Makefile,所以我在那里修改了它。谢谢。这回答了你的问题吗?