我想创建一个GCC交叉编译器,我遵循这里的指示,这里,但问题是,每次当我让gcc会有相同的错误打击。
../../gcc-4.8.2/gcc/graphite-clast-to-gimple.c:897:24:错误:“isl_lp_ok” 未在此范围内声明。 断言(lp_result == isl_lp_ok);^==错误: “isl_int_get_gmp”未在此范围内声明 isl_int_get_gmp (isl_value,低);^ ../../gcc-4.8.2/gcc/graphite-clast-to-gimple.c:900:57:错误:“isl_set_max” 未在此范围内声明。 ../../gcc-4.8.2/gcc/graphite-clast-to-gimple.c:904:27: lp_result = isl_set_max (域、维度、&isl_value);^isl_set_max错误: “isl_int_clear”未在此范围内声明 isl_int_clear (isl_value);^ Makefile:1058:目标“石墨-碎屑到金银”的配方失败 make1:*石墨-碎屑-碎屑到-gimpe.o错误1 make1:离开目录‘/home/mike/src/build/gcc’ Makefile:3927:目标“全gcc”的配方失败 制造:*全-gcc错误2
起初,我认为这可能是由于版本问题引起的,因为我的openSUSE上的gcc是4.8.3,但是在我使用4.8.2版本之后没有什么改变。非常感谢!
发布于 2015-02-18 07:06:42
最新版本(0.14?)有问题。在ISL库中- API与gcc在4.9.2岁时不兼容。至于构建CLooG,包含在0.18.2中的ISL-0.12.1版本没有得到正确的配置。因此,您需要构建和安装自己的库,然后在配置gcc时使用这些库。
1/.isl-0.12.2
> ./configure --prefix=$CROSSDIR --with-gmp-prefix=$GMPDIR
> make install # and rehash, etc.CROSSDIR是安装交叉编译器工具链的地方,而GMPDIR是包含lib和include目录的根目录。不幸的是,这意味着您需要分别构建GMP、MPFR和MPC,并首先从包系统安装或安装它们。但是您可能不需要这个(,见下面的)。
[2]。cloog-0.18.2
> ./configure --prefix=$CROSSDIR --with-isl-prefix=$CROSSDIR \
--with-gmp-prefix=$GMPDIR有一个荒谬的问题,Makefile有“cmake”字符串。解决方案(来自clfs.org):
> sed '/cmake/d' Makefile > Makefile.new
> mv Makefile.new Makefile
> make install # and rehash, etc.配置gcc时,使用:--with-isl=$CROSSDIR --with-cloog=$CROSSDIR,您将需要以下选项:--with-gmp、--with-mpfr、--with-mpc
或者,按照您正在使用的指令,将isl-0.12.2和cloog-0.18.2移动到gcc源树中的isl和cloog子树可能就足够了。配置完成后,进入cloog子目录并按上面的方式编辑Makefile。我没试过这个。出于其他原因,我在CROSSDIR下分别构建和安装软件包。
发布于 2015-02-18 06:25:02
如果您在Linux上,您可能会得到系统的开发包。我知道基于Debian的系统的命令,比如Ubuntu及其变体。
sudo apt-get install libisl-dev
sudo apt-get install libcloog-isl-dev之后,删除gcc文件夹中的isl和cloog目录,然后尝试从以下位置继续:
make all-gcc如果您没有基于Debian的系统,那么在Google中进行一些搜索应该会有帮助。
https://stackoverflow.com/questions/28535896
复制相似问题