C++ 使用自动工具编译旧项目
当我尝试运行配置脚本时,我一直在努力解决这个错误。这是一个有12年历史的图书馆。首先,我尝试使用所有autotools和GCC的现代版本生成配置脚本 然后,我尝试使用当时的工具版本生成它,但当我运行configure文件时,仍然会出现相同的错误,这些错误总是坏掉的变量CPPFLAGS 以下是配置错误:C++ 使用自动工具编译旧项目,c++,gcc,centos,autotools,chord,C++,Gcc,Centos,Autotools,Chord,当我尝试运行配置脚本时,我一直在努力解决这个错误。这是一个有12年历史的图书馆。首先,我尝试使用所有autotools和GCC的现代版本生成配置脚本 然后,我尝试使用当时的工具版本生成它,但当我运行configure文件时,仍然会出现相同的错误,这些错误总是坏掉的变量CPPFLAGS 以下是配置错误: checking for GMP library... checking for gmp.h... configure: error: Could not find gmp.h header
checking for GMP library... checking for gmp.h...
configure: error: Could not find gmp.h header
下面是描述错误的config.log部分:
configure:22748: gcc34 -c -g -O2 -I/home/vicente/build/chord/../sfslite -I/home/vicente/build/chord/../sfslite/$(srcdir); export srcdir; \
/home/vicente/sfslite/async -I/home/vicente/build/chord/../sfslite/$(srcdir); export srcdir; \
/home/vicente/sfslite/arpc -I/home/vicente/build/chord/../sfslite/$(srcdir); export srcdir; \
/home/vicente/sfslite/crypt -I/home/vicente/build/chord/../sfslite/$(srcdir); export srcdir; \
/home/vicente/sfslite/sfsmisc -I/home/vicente/build/chord/../sfslite/$(srcdir); export srcdir; \
/home/vicente/sfslite/libsfs -I/home/vicente/build/chord/../sfslite/svc -I/usr/include conftest.c >&5
gcc34: export: No such file or directory
gcc34: srcdir;: No such file or directory
gcc34: \: No such file or directory
gcc34: export: No such file or directory
gcc34: srcdir;: No such file or directory
gcc34: \: No such file or directory
gcc34: export: No such file or directory
gcc34: srcdir;: No such file or directory
gcc34: \: No such file or directory
gcc34: export: No such file or directory
gcc34: srcdir;: No such file or directory
gcc34: \: No such file or directory
gcc34: export: No such file or directory
gcc34: srcdir;: No such file or directory
gcc34: \: No such file or directory
configure:22754: $? = 1
configure: failed program was:
我想知道是否有人经历过类似的问题。
谢谢
工具版本:
- 通用条款3.4、4.4、4.7.2
- Autoconf/aclocal/autoheader 2.59、2.69
- 汽车制造1.9.6,1.15
- 操作系统:Centos 5.9,Ubuntu12.04都是64位
cat confdefs.h>>conftest.$ac\u ext
cat>>conftest.$ac_ext conftest.er1
ac_状态=$?
grep-v'^*+'conftest.er1>conftest.err
rm-f conftest.er1
cat conftest.err>&5
echo“$as\u me:$LINENO:\$?=$ac\u status”>第5行22754
(退出$ac_状态);}&&
{ac_try='test-z“$ac_c_werror_flag”
||测试!-这是测试。错误'
{(eval echo“$as\u me:$LINENO:\“$ac\u try\”)>&5
(eval$ac_try)2>&5
ac_状态=$?
echo“$as\u me:$LINENO:\$?=$ac\u status”>&5
(退出$ac_状态);};}&&
{ac_try='test-s conftest.$ac_objext'
{(eval echo“$as\u me:$LINENO:\“$ac\u try\”)>&5
(eval$ac_try)2>&5
ac_状态=$?
echo“$as\u me:$LINENO:\$?=$ac\u status”>&5
(退出$ac_状态);};};然后
sfs_cv_gmp_h=“${iflags}”;打破
其他的
echo“$as_me:失败的程序为:”>&5
sed's/^/|/'conftest.$ac_ext>&5
fi
在这种情况下,在错误周围显示生成的配置脚本中的行(第22748行)可能也很有用。您也可以尝试autoconf 2.13(这是过去最流行的autoconf版本)。请检查编辑。我还没有试过autoconf 2.13,我会试一试:)
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
#include "gmp.h"
int
main ()
{
0
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
echo "$as_me:$LINENO: \$? = $ac_status" >&5 # line 22754
(exit $ac_status); } &&
{ ac_try='test -z "$ac_c_werror_flag"
|| test ! -s conftest.err'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; } &&
{ ac_try='test -s conftest.$ac_objext'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; }; then
sfs_cv_gmp_h="${iflags}"; break
else
echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
fi