我真的需要你的幫助,我一直試圖解決這個問題幾天沒有運氣。我正在編譯與gfortran(作爲主要程序在fortran中)一個程序,它要求在標準目錄中安裝一個庫(lhapdf),但實際上發現它,但是當與C++庫鏈接時,它似乎有問題。正如我與配置和生成文件不熟悉我無法弄清楚什麼是錯的,這是我的配置文件:與Fortran編譯器和C++庫衝突
#! /bin/sh
# configure script for FormCalc
# note: has nothing to do with GNU autoconf
# this file is part of FormCalc
# last modified 30 Aug 14 th
exec 2> ${LOGFILE:-/dev/null} 3>&1
eval ${LOGFILE:+set -x}
LC_ALL=C
export LC_ALL
test=test$$
trap "rm -fr $test*" 0 1 2 3 15
if (echo "test\c"; echo 1,2,3) | grep c > /dev/null ; then
if (echo -n test; echo 1,2,3) | grep n > /dev/null ; then
echo_n=
echo_c='
'
else
echo_n=-n
echo_c=
fi
else
echo_n=
echo_c='\c'
fi
findprog() {
echo $echo_n "looking for $1... $echo_c" 1>&3
shift
test -n "$CONF_TARGET" && for prog in "[email protected]" ; do
full="`which \"$CONF_TARGET-$prog\" 2> /dev/null`"
test -x "$full" && {
echo $full 1>&3
echo $CONF_TARGET-$prog
return 0
}
done
for prog in "[email protected]" ; do
full="`which \"$prog\" 2> /dev/null`"
test -x "$full" && {
echo $full 1>&3
echo $prog
return 0
}
done
echo "no [email protected] in your path" 1>&3
return 1
}
findlib() {
echo $echo_n "looking for $1... $echo_c" 1>&3
file=$2
tag=$3
shift 3
for base in "[email protected]" \
../$tag* \
../../$tag* \
../../../$tag* \
../../../../$tag* \
$HOME/$tag* \
/usr/local/$tag* \
/usr/$tag* \
/usr/local \
/usr
do
for path in \
"${CONF_LIBDIRSUFFIX:+$base/lib$CONF_LIBDIRSUFFIX}" \
"${CONF_LIBDIRSUFFIX:+$base/$CONF_DEFPREFIX/lib$CONF_LIBDIRSUFFIX}" \
"$base/lib" \
"$base/$CONF_DEFPREFIX/lib" \
${CONF_QUAD:+"$base/build-quad"} \
"$base/build" \
"$base/includects" \
"$base/libs" \
"$base/.libs" \
"$base/src" \
"$base/src/.libs" \
"$base"
do
test -f "$path/$file" && {
echo "$path" 1>&3
echo "$path"
return 0
}
done
done
echo "not found" 1>&3
return 1
}
getldflags() {
ldflags="$LDFLAGS"
while read line ; do
set -- `echo $line | tr ':,()' ' '`
case $1 in
*/collect2$CONF_EXE | */ld$CONF_EXE | ld$CONF_EXE) ;;
*) continue ;;
esac
while test $# -gt 1 ; do
shift
case $1 in
# *.o | -lc | -lgcc*)
*.o | -lc)
;;
-l* | -L* | *.a)
ldflags="$ldflags $1" ;;
-Bstatic | -Bdynamic | *.ld)
ldflags="$ldflags -Wl,$1" ;;
/*)
ldflags="$ldflags -L,$1" ;;
-rpath*)
ldflags="$ldflags -Wl,$1,$2"
shift ;;
-dynamic-linker)
shift ;;
esac
done
done
echo $ldflags
}
CONF_SRC=`dirname $0`
CONF_OS=`uname -s`
CONF_OSVER=`uname -r`
CONF_MACH=`uname -m`
CONF_DEFPREFIX="$CONF_MACH-$CONF_OS"
CONF_PREFIX="$CONF_DEFPREFIX"
CONF_TARGET=
CONF_STATIC=
CONF_STATIC_EXT=
CONF_QUAD=
CONF_DEBUG=
CONF_BITS=
# Mma 5.1's mcc needs -lpthread for static linking
CONF_MCLIBS="-lpthread"
CONF_ARCH="-march=native"
CONF_AS=
CONF_EXE=
case "$CONF_OS" in
CYG*) CONF_EXE=.exe ;;
Darwin) CONF_AS="-Wa,-q" ;;
esac
CONF_MAKEARGS=0
for arg in "[email protected]" ; do
case "$arg" in
--prefix=*)
CONF_PREFIX=`expr "$arg" : ".*--prefix=\(.*\)"` ;;
--host=*)
CONF_TARGET=`expr "$arg" : ".*--host=\(.*\)"` ;;
--static)
CONF_STATIC="-static"
case "$CONF_OS" in
# Apple discourages static linking, see
# http://developer.apple.com/qa/qa2001/qa1118.html,
# so we make only libgcc static. For a static libg2c do:
# sudo chmod 000 /usr/local/lib/libg2c.dylib
Darwin | CYG*)
CONF_STATIC_EXT=$CONF_STATIC
CONF_STATIC= ;;
esac ;;
--quad)
CONF_QUAD=1 ;;
--debug)
CONF_DEBUG="-O0 -g" ;;
--32)
CONF_BITS=32 ;;
--64)
CONF_BITS=64 ;;
--generic)
CONF_ARCH=
CONF_AS= ;;
--make*)
CONF_MAKEARGS="`expr "$arg" : "--make=\(.*\)"`" ;;
--help)
cat << _EOF_ 1>&3
$0 configures FormCalc-generated Fortran code, i.e. determines
or guesses the compiler and flags and writes out a makefile.
$0 understands the following options:
--prefix=DIR use DIR as installation directory,
--host=HOST target host triplet, e.g. i386-pc-linux,
--static link the executables statically,
--quad compile with quadruple precision (gfortran 4.6+, ifort and xlf only),
--debug compile without optimization,
--32 force 32-bit compilation,
--64 force 64-bit compilation,
--generic do not specifically target the CPU configure runs on,
--make[=ARGS] immediately continue with "make ARGS" after configure.
_EOF_
exit 1 ;;
-*)
echo "Warning: $arg is not a valid option." 1>&3 ;;
*=*)
eval `echo $arg\" | sed 's/=/="/'` ;;
*)
echo "Warning: $arg is not a valid argument." 1>&3 ;;
esac
done
test "$CONF_OS" = Linux -a "$CONF_BITS" \!= 32 && CONF_LIBDIRSUFFIX=64
CONF_M=${CONF_BITS:+-m$CONF_BITS}
## look for some programs
CONF_MAKE=`findprog make $MAKE gmake Make make` || exit 1
CONF_CC=`findprog gcc $CC clang gcc` || exit 1
CONF_CXX=`findprog g++ $CXX clang++ g++` || exit 1
CONF_FC=`findprog fortran $FC ${CONF_QUAD:+ifort gfortran xlf} ifort pgf90 xlf gfortran g95 f90` || exit 1
CONF_AR=`findprog ar $AR ar`
CONF_RANLIB=`findprog ranlib $RANLIB ranlib`
CONF_NM=`findprog nm $NM nm`
CONF_DLLTOOL=`findprog dlltool $DLLTOOL dlltool`
CONF_DEF="-D"
case "`$CONF_FC --version -c 2>&1`" in
*G95*)
CONF_FFLAGS="$FFLAGS -O0 -g -ffixed-line-length-132 -freal-loops $CONF_M $CONF_STATIC ${CONF_DEBUG:+-Wall}" ;;
*GNU*)
CONF_FFLAGS="$FFLAGS ${CONF_DEBUG:--O3 -g} -lLHAPDF -ffixed-line-length-none $CONF_M $CONF_STATIC ${CONF_DEBUG:+-Wall}"
case "$CONF_FC" in
*gfortran*)
CONF_FFLAGS="$CONF_FFLAGS $CONF_ARCH $CONF_AS ${CONF_DEBUG:+-Wtabs -ffpe-trap=invalid,overflow,zero} -ff2c ${CONF_STATIC_EXT:+-static-libgfortran -static-libgcc} ${CONF_QUAD:+-fdefault-real-8}" ;;
esac ;;
*)
CONF_FFLAGS="${FFLAGS-default}"
test "$CONF_FFLAGS" = default && case "$CONF_FC$CONF_MACH" in
*pgf*)
CONF_FFLAGS="${CONF_DEBUG:--O3 -g} ${CONF_ARCH:+-Mvect=simd} ${CONF_DEBUG:+-Ktrap=fp} -Mextend -Minform=inform -g77libs ${CONF_STATIC:+-Bstatic} $CONF_M" ;;
*ifort*)
CONF_FFLAGS="${CONF_DEBUG:--O3 -g} $CONF_ARCH -extend_source -warn nouncalled -warn truncated_source -assume bscc $CONF_STATIC ${CONF_STATIC_EXT:+-static-intel} ${CONF_QUAD:+-r16 -DDBLE=QEXT -DDIMAG=QIMAG -DDCONJG=QCONJG -DDCMPLX=QCMPLX} $CONF_M" ;;
*alpha)
CONF_FFLAGS="${CONF_DEBUG:--O3 -g3} ${CONF_DEBUG:+-fpe0} -extend_source -warn truncated_source ${CONF_STATIC:+-non_shared}" ;;
*sun* | *sparc*)
CONF_FFLAGS="${CONF_DEBUG:--O3 -g} ${CONF_DEBUG:+-ftrap=common} -e ${CONF_STATIC:+-Bstatic}" ;;
*hp*)
CONF_FFLAGS="${CONF_DEBUG:--O2 -g} ${CONF_DEBUG:++FPVZO} +es +U77 ${CONF_STATIC:+-Wl,-noshared}" ;;
*xlf*)
CONF_FFLAGS="${CONF_DEBUG:--O2 -g} ${CONF_DEBUG:+-qflttrap=enable:invalid:overflow:zerodivide} -qfixed=132 -qmaxmem=-1 -qextname ${CONF_QUAD:+-qautodbl=dbl}"
CONF_DEF="-WF,-D" ;;
*)
CONF_FFLAGS="${CONF_DEBUG:--O -g}" ;;
esac ;;
esac
## find the Fortran libraries
echo $echo_n "extracting the Fortran libraries... $echo_c" 1>&3
rm -fr $test*
cat > $test.f << _EOF_
program dontpanic
print *, "Hi"
end
_EOF_
eval ${LOGFILE:+cat $test.f 1>&2}
CONF_LDFLAGS=`$CONF_FC $CONF_FFLAGS -v -o -lstdc++ $test $test.f 2>&1 | getldflags`
CONF_INCPATH="$INCPATH"
CONF_STDLIBS="$STDLIBS"
case "$CONF_OS$CONF_OSVER" in
Darwin10*) CONF_STDLIBS="${CONF_STDLIBS:+$CONF_STDLIBS }-lSystemStubs" ;;
esac
echo $CONF_LDFLAGS 1>&3
test -z "$CONF_BITS" && case "$CONF_MACH" in
*86*) CONF_BITS=32
case "`file $test`" in
*x86?64*) CONF_BITS=64 ;;
esac
CONF_M="-m$CONF_BITS" ;;
esac
CONF_CFLAGS="${CFLAGS-${CONF_DEBUG:--O3 -g } $CONF_ARCH -std=gnu99 -fomit-frame-pointer -ffast-math} $CONF_M $CONF_STATIC ${CONF_STATIC_EXT:+-static-libgcc}"
CONF_CXXFLAGS="$CXXFLAGS $CONF_M $CONF_STATIC ${CONF_STATIC_EXT:+-static-libstdc++ -static-libgcc}"
## does Fortran need externals for U77 routines?
echo $echo_n "does $CONF_FC need externals for U77 routines... $echo_c" 1>&3
rm -fr $test*
cat > $test.f << _EOF_
program test
implicit none
print *, iargc(), len_trim("Hi")
end
_EOF_
eval ${LOGFILE:+cat $test.f 1>&2}
if $CONF_FC $CONF_FFLAGS -c $test.f 1>&2 ; then
echo "no" 1>&3
CONF_U77EXT=0
else
echo "yes" 1>&3
CONF_U77EXT=1
fi
## does Fortran append underscores to symbols?
echo $echo_n "does $CONF_FC append underscores... $echo_c" 1>&3
rm -fr $test*
echo "void uscore$$_() {}" > $test-c.c
eval ${LOGFILE:+cat $test-c.c 1>&2}
cat > $test.f << _EOF_
program test_uscore
call uscore$$
end
_EOF_
eval ${LOGFILE:+cat $test.f 1>&2}
$CONF_CC $CONF_CFLAGS -c $test-c.c 1>&2
if $CONF_FC $CONF_FFLAGS -o $test $test.f $test-c.o 1>&2 ; then
echo "yes" 1>&3
else
echo "no" 1>&3
CONF_CFLAGS="$CONF_CFLAGS -DNOUNDERSCORE"
fi
## find max SIMD vector length supported by hardware
echo $echo_n "extracting SIMD capabilities of $CONF_FC... $echo_c" 1>&3
cat simd.h - > $test.F << _EOF_ 2> /dev/null
#ifdef GENERIC
#define SIMD2 0
#define PROP "none"
#elif defined __AVX__
#define SIMD2 2
#define PROP "AVX"
#elif defined __SSE3__
#define SIMD2 1
#define PROP "SSE3"
#else
#define SIMD2 0
#define PROP "none"
#endif
program test
print *, PROP
#if defined SIMD && SIMD == SIMD2
#else
print *, SIMD2
#endif
end
_EOF_
eval ${LOGFILE:+cat $test.F 1>&2}
$CONF_FC $CONF_FFLAGS ${CONF_ARCH:-${CONF_DEF}GENERIC} -o $test $test.F 1>&2
set -- `./$test 2>&1`
echo $1 1>&3
case $2 in
0|1|2) cat > simd.h << _EOF_
#if 0
vectorization ability of $CONF_FC on $HOSTNAME
determined by $0 on `date`
#endif
#define SIMD $2
_EOF_
;;
esac
# check for the necessary libraries
CONF_LIBS=
LTLIB=libooptools${CONF_QUAD:+-quad}.a
CONF_LT="`findlib LoopTools $LTLIB LoopTools $LT`" && {
CONF_INCPATH="${CONF_INCPATH:+$CONF_INCPATH:}\$(LT)/../include:\$(LT)"
CONF_LIBS="\$(LT)/$LTLIB"
}
CONF_NINJA="`findlib Ninja libninja.a ninja $NINJA`" && {
echo $echo_n "determining C++ library needed by Ninja... $echo_c" 1>&3
cat > $test.f << _EOF_
program test
call ninjaformcalc
end
_EOF_
eval ${LOGFILE:+cat $test.f 1>&2}
LIBCPP=-lstdc++
$CONF_FC $CONF_FFLAGS -o $test $test.f $CONF_NINJA/libninja.a $CONF_LT/$LTLIB \
$LIBCPP $CONF_STDLIBS 1>&2 || LIBCPP=-lc++
echo "$LIBCPP" 1>&3
CONF_LIBS="\$(NINJA)/libninja.a $LIBCPP${CONF_LIBS:+ $CONF_LIBS}"
}
CONF_SAMURAI="`findlib Samurai libsamurai.a samurai $SAMURAI`" && {
CONF_INCPATH="${CONF_INCPATH:+$CONF_INCPATH:}\$(SAMURAI)/../samurai:\$(SAMURAI)"
CONF_LIBS="\$(SAMURAI)/libsamurai.a \$(SAMURAI)/libqcdloop.a `\$(SAMURAI)/libavh_olo.a${CONF_LIBS:+ $CONF_LIBS}"
}
CONF_CT="`findlib CutTools libcts.a Cuttools $CT`" && {
CONF_INCPATH="${CONF_INCPATH:+$CONF_INCPATH:}\$(CT)"
CONF_LIBS="\$(CT)/libcts.a${CONF_LIBS:+ $CONF_LIBS}"
}
CONF_FH="`findlib FeynHiggs libFH.a FeynHiggs $FH`" && {
CONF_INCPATH="${CONF_INCPATH:+$CONF_INCPATH:}\$(FH)/../include:\$(FH)"
CONF_LIBS="\$(FH)/libFH.a${CONF_LIBS:+ $CONF_LIBS}"
}
CONF_LHAPDF="`findlib LHAPDF libLHAPDF.a lhapdf $LHAPDF`" &&
CONF_LIBS="\$(LHAPDF)/libLHAPDF.a${CONF_LIBS:+ $CONF_LIBS}"
echo "creating makefile" 1>&3
cat - `dirname $0`/makefile.in > makefile << _EOF_
# --- variables defined by configure ---
SRC = $CONF_SRC
PREFIX = $CONF_PREFIX
LIBDIRSUFFIX = $CONF_LIBDIRSUFFIX
EXE = $CONF_EXE
DEF = $CONF_DEF
LT = $CONF_LT
NINJA = $CONF_NINJA
SAMURAI = $CONF_SAMURAI
CT = $CONF_CT
FH = $CONF_FH
LHAPDF = $CONF_LHAPDF
INCPATH = $CONF_INCPATH
STDLIBS = $CONF_LIBS $CONF_STDLIBS
LDFLAGS = $CONF_LDFLAGS
FC = $CONF_FC
FFLAGS = $CONF_FFLAGS \$(DEF)U77EXT=$CONF_U77EXT ${CONF_DEBUG:+\$(DEF)DEBUG}
CC = $CONF_CC
CFLAGS = $CONF_CFLAGS
CXX = $CONF_CXX
CXXFLAGS = $CONF_CXXFLAGS
MCFLAGS = ${CONF_STATIC:+-st} ${CONF_STATIC_EXT:+-st} ${CONF_BITS:+-b$CONF_BITS}
MCLIBS = $CONF_MCLIBS
# --- end defs by configure ---
_EOF_
if test "$CONF_MAKEARGS" = 0 ; then
cat << _EOF_ 1>&3
now you must run $CONF_MAKE
_EOF_
else
$CONF_MAKE $CONF_MAKEARGS 1>&3 2>&3
fi
exit 0
運行make後,這些都是錯誤的:
gfortran -O3 -g -lLHAPDF -ffixed-line-length-none -march=native -ff2c -DU77EXT=0 -I. -I./F -I. -I. -I../../LoopTools/x86_64-Linux/lib64/../include -I../../LoopTools/x86_64-Linux/lib64 -I/usr/local/lib64/../include -I/usr/local/lib64 -Irenconst/ -DPREFIX= -o run run.F renconst.a squaredme.a util.a /usr/local/lib/libLHAPDF.a /usr/local/lib64/libFH.a ../../LoopTools/x86_64-Linux/lib64/libooptools.a
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `getprefixpath_':
/home/vannia/Documents/lhapdf-5.9.1/src/getdatapath.cc:28: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `operator+<char, std::char_traits<char>, std::allocator<char> >':
/usr/include/c++/4.8/bits/basic_string.h:2405: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::append(char const*)':
/usr/include/c++/4.8/bits/basic_string.h:1009: undefined reference to `std::string::append(char const*, unsigned long)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::_Rep::_M_dispose(std::allocator<char> const&)':
/usr/include/c++/4.8/bits/basic_string.h:240: undefined reference to `std::string::_Rep::_S_empty_rep_storage'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::assign(char const*)':
/usr/include/c++/4.8/bits/basic_string.h:1131: undefined reference to `std::string::assign(char const*, unsigned long)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `~basic_string':
/usr/include/c++/4.8/bits/basic_string.h:539: undefined reference to `std::string::_Rep::_M_dispose(std::allocator<char> const&)'
/usr/include/c++/4.8/bits/basic_string.h:539: undefined reference to `std::string::_Rep::_M_dispose(std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::_Rep::_M_dispose(std::allocator<char> const&)':
/usr/include/c++/4.8/bits/basic_string.h:249: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
/usr/include/c++/4.8/bits/basic_string.h:249: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `getindexpath_':
/home/vannia/Documents/lhapdf-5.9.1/src/getdatapath.cc:55: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
/home/vannia/Documents/lhapdf-5.9.1/src/getdatapath.cc:55: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::append(char const*)':
/usr/include/c++/4.8/bits/basic_string.h:1009: undefined reference to `std::string::append(char const*, unsigned long)'
/usr/include/c++/4.8/bits/basic_string.h:1009: undefined reference to `std::string::append(char const*, unsigned long)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::_Rep::_M_dispose(std::allocator<char> const&)':
/usr/include/c++/4.8/bits/basic_string.h:240: undefined reference to `std::string::_Rep::_S_empty_rep_storage'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `~basic_string':
/usr/include/c++/4.8/bits/basic_string.h:539: undefined reference to `std::string::_Rep::_M_dispose(std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::_Rep::_M_dispose(std::allocator<char> const&)':
/usr/include/c++/4.8/bits/basic_string.h:249: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
/usr/include/c++/4.8/bits/basic_string.h:249: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `~basic_string':
/usr/include/c++/4.8/bits/basic_string.h:539: undefined reference to `std::string::_Rep::_M_dispose(std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `getdatapath_':
/home/vannia/Documents/lhapdf-5.9.1/src/getdatapath.cc:77: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `operator+<char, std::char_traits<char>, std::allocator<char> >':
/usr/include/c++/4.8/bits/basic_string.h:2405: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::append(char const*)':
/usr/include/c++/4.8/bits/basic_string.h:1009: undefined reference to `std::string::append(char const*, unsigned long)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `operator+<char, std::char_traits<char>, std::allocator<char> >':
/usr/include/c++/4.8/bits/basic_string.h:2405: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::append(char const*)':
/usr/include/c++/4.8/bits/basic_string.h:1009: undefined reference to `std::string::append(char const*, unsigned long)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::_Rep::_M_dispose(std::allocator<char> const&)':
/usr/include/c++/4.8/bits/basic_string.h:240: undefined reference to `std::string::_Rep::_S_empty_rep_storage'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `getdatapath_':
/home/vannia/Documents/lhapdf-5.9.1/src/getdatapath.cc:82: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `operator+<char, std::char_traits<char>, std::allocator<char> >':
/usr/include/c++/4.8/bits/basic_string.h:2405: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::string const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::append(char const*)':
/usr/include/c++/4.8/bits/basic_string.h:1009: undefined reference to `std::string::append(char const*, unsigned long)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::operator=(std::string const&)':
/usr/include/c++/4.8/bits/basic_string.h:547: undefined reference to `std::string::assign(std::string const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::_Rep::_M_dispose(std::allocator<char> const&)':
/usr/include/c++/4.8/bits/basic_string.h:240: undefined reference to `std::string::_Rep::_S_empty_rep_storage'
/usr/include/c++/4.8/bits/basic_string.h:249: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `~basic_string':
/usr/include/c++/4.8/bits/basic_string.h:539: undefined reference to `std::string::_Rep::_M_dispose(std::allocator<char> const&)'
/usr/include/c++/4.8/bits/basic_string.h:539: undefined reference to `std::string::_Rep::_M_dispose(std::allocator<char> const&)'
/usr/include/c++/4.8/bits/basic_string.h:539: undefined reference to `std::string::_Rep::_M_dispose(std::allocator<char> const&)'
/usr/include/c++/4.8/bits/basic_string.h:539: undefined reference to `std::string::_Rep::_M_dispose(std::allocator<char> const&)'
/usr/include/c++/4.8/bits/basic_string.h:539: undefined reference to `std::string::_Rep::_M_dispose(std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::_Rep::_M_dispose(std::allocator<char> const&)':
/usr/include/c++/4.8/bits/basic_string.h:249: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `operator+<char, std::char_traits<char>, std::allocator<char> >':
/usr/include/c++/4.8/bits/basic_string.h:539: undefined reference to `std::string::_Rep::_M_dispose(std::allocator<char> const&)'
/usr/include/c++/4.8/bits/basic_string.h:539: undefined reference to `std::string::_Rep::_M_dispose(std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `std::string::_Rep::_M_dispose(std::allocator<char> const&)':
/usr/include/c++/4.8/bits/basic_string.h:249: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
/usr/include/c++/4.8/bits/basic_string.h:249: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
/usr/include/c++/4.8/bits/basic_string.h:249: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(getdatapath.o): In function `__static_initialization_and_destruction_0':
/usr/include/c++/4.8/iostream:74: undefined reference to `std::ios_base::Init::Init()'
/usr/include/c++/4.8/iostream:74: undefined reference to `std::ios_base::Init::~Init()'
/usr/local/lib/libLHAPDF.a(getdatapath.o):(.data.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0): undefined reference to `__gxx_personality_v0'
/usr/local/lib/libLHAPDF.a(version.o): In function `getlhapdfversion_':
/home/vannia/Documents/lhapdf-5.9.1/src/version.cc:18: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(version.o): In function `std::string::_Rep::_M_dispose(std::allocator<char> const&)':
/usr/include/c++/4.8/bits/basic_string.h:240: undefined reference to `std::string::_Rep::_S_empty_rep_storage'
/usr/include/c++/4.8/bits/basic_string.h:249: undefined reference to `std::string::_Rep::_M_destroy(std::allocator<char> const&)'
/usr/local/lib/libLHAPDF.a(commoninit.o): In function `commoninit_':
commoninit.f:(.text+0x33): relocation truncated to fit: R_X86_64_PC32 against symbol `lhapdf_' defined in COMMON section in /usr/local/lib/libLHAPDF.a(commoninit.o)
commoninit.f:(.text+0x1d1): relocation truncated to fit: R_X86_64_PC32 against symbol `lhaglsta_' defined in COMMON section in /usr/local/lib/libLHAPDF.a(commoninit.o)
../../LoopTools/x86_64-Linux/lib64/libooptools.a(Aget.o): In function `ljacoeff_':
/home/vannia/.Mathematica/Applications/HighEnergyPhysics/LoopTools-2.9/build/Aget.F:110:(.text+0x1e): relocation truncated to fit: R_X86_64_PC32 against symbol `ltvars_' defined in COMMON section in ../../LoopTools/x86_64-Linux/lib64/libooptools.a(Aget.o)
/home/vannia/.Mathematica/Applications/HighEnergyPhysics/LoopTools-2.9/build/Aget.F:112:(.text+0x27): relocation truncated to fit: R_X86_64_PC32 against symbol `ltvars_' defined in COMMON section in ../../LoopTools/x86_64-Linux/lib64/libooptools.a(Aget.o)
/home/vannia/.Mathematica/Applications/HighEnergyPhysics/LoopTools-2.9/build/Aget.F:112:(.text+0x30): relocation truncated to fit: R_X86_64_PC32 against symbol `ltvars_' defined in COMMON section in ../../LoopTools/x86_64-Linux/lib64/libooptools.a(Aget.o)
/home/vannia/.Mathematica/Applications/HighEnergyPhysics/LoopTools-2.9/build/Aget.F:114:(.text+0x3c): relocation truncated to fit: R_X86_64_PC32 against symbol `ltvars_' defined in COMMON section in ../../LoopTools/x86_64-Linux/lib64/libooptools.a(Aget.o)
/home/vannia/.Mathematica/Applications/HighEnergyPhysics/LoopTools-2.9/build/Aget.F:114:(.text+0x45): relocation truncated to fit: R_X86_64_PC32 against symbol `ltvars_' defined in COMMON section in ../../LoopTools/x86_64-Linux/lib64/libooptools.a(Aget.o)
/home/vannia/.Mathematica/Applications/HighEnergyPhysics/LoopTools-2.9/build/Aget.F:114:(.text+0x4d): relocation truncated to fit: R_X86_64_PC32 against symbol `ltvars_' defined in COMMON section in ../../LoopTools/x86_64-Linux/lib64/libooptools.a(Aget.o)
/home/vannia/.Mathematica/Applications/HighEnergyPhysics/LoopTools-2.9/build/Aget.F:120:(.text+0x84): relocation truncated to fit: R_X86_64_PC32 against symbol `ltvars_' defined in COMMON section in ../../LoopTools/x86_64-Linux/lib64/libooptools.a(Aget.o)
/home/vannia/.Mathematica/Applications/HighEnergyPhysics/LoopTools-2.9/build/Aget.F:125:(.text+0xd3): relocation truncated to fit: R_X86_64_PC32 against symbol `ltregul_' defined in COMMON section in ../../LoopTools/x86_64-Linux/lib64/libooptools.a(Aget.o)
/home/vannia/.Mathematica/Applications/HighEnergyPhysics/LoopTools-2.9/build/Aget.F:125:(.text+0xf0): additional relocation overflows omitted from the output
collect2: error: ld returned 1 exit status
make: *** [run] Error 1
你想添加'-lstdC++'到你的命令中,但是你的腳本太複雜了,以至於我找不到改變它的地方。 – 2014-11-05 20:28:01
謝謝弗拉基米爾,我曾嘗試過,但我不知道該把它放在哪裏,這對我來說也很複雜。該配置文件是從另一個軟件自動創建的,開發人員建議將-lstdC++添加到ldflags以進行正確的鏈接。你知道我應該修改ldflags嗎?包括-lstdC++? – 2014-11-05 20:57:39