Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.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
Gcc Mac OS X 10.8的Mercury编译错误_Gcc_Mercury - Fatal编程技术网

Gcc Mac OS X 10.8的Mercury编译错误

Gcc Mac OS X 10.8的Mercury编译错误,gcc,mercury,Gcc,Mercury,我在Mac上编译Mercury时遇到问题。我正在运行MacOSX10.8,安装了Xcode 4.5,还安装了命令行工具 到目前为止,我做了什么: 我下载了tar.gz文件,将其解压缩,在该文件夹中运行./configure,然后使用makeparallel=-j2install命令,正如它在./configure之后所说的那样 在该步骤中,我在命令行中获得以下内容: MMAKE_DIR=`pwd`/scripts scripts/mmake MMAKEFLAGS=-j2 DESTDIR= in

我在Mac上编译Mercury时遇到问题。我正在运行MacOSX10.8,安装了Xcode 4.5,还安装了命令行工具

到目前为止,我做了什么:

我下载了tar.gz文件,将其解压缩,在该文件夹中运行./configure,然后使用makeparallel=-j2install命令,正如它在./configure之后所说的那样

在该步骤中,我在命令行中获得以下内容:

MMAKE_DIR=`pwd`/scripts scripts/mmake  MMAKEFLAGS=-j2 DESTDIR= install
cd scripts && PATH=../scripts:../util:$PATH MMAKE_VPATH=. MMAKE_DIR=../scripts DESTDIR= ../scripts/mmake -j2
make[2]: Nothing to be done for `default_target'.
cd util && PATH=../scripts:../util:$PATH MMAKE_VPATH=. MMAKE_DIR=../scripts DESTDIR= ../scripts/mmake -j2 mfiltercc
make[2]: `mfiltercc' is up to date.
gc_grade=`scripts/ml --grade none.gc --print-gc-grade`; \
    cd boehm_gc && PATH=../scripts:../util:$PATH MMAKE_VPATH=. MMAKE_DIR=../scripts DESTDIR= ../scripts/mmake -j2 GC_GRADE=$gc_grade
MAKEFLAGS=""; export MAKEFLAGS; \
    PATH=../util:$PATH make -j2 -j1 \
        GRADE=none.gc GC_GRADE=gc \
        AR=ar RANLIB=ranlib \
        libgc.a libgc.dylib \
        FINAL_INSTALL_MERC_GC_LIB_DIR=/usr/local/mercury-11.07.2/lib/mercury/lib \
        dylib
make[3]: `libgc.a' is up to date.
make[3]: `libgc.dylib' is up to date.
make[3]: Nothing to be done for `dylib'.
cd runtime && PATH=../scripts:../util:$PATH MMAKE_VPATH=. MMAKE_DIR=../scripts DESTDIR= ../scripts/mmake -j2
make[2]: Nothing to be done for `default_target'.
cd util && PATH=../scripts:../util:$PATH MMAKE_VPATH=. MMAKE_DIR=../scripts DESTDIR= ../scripts/mmake -j2
make[2]: Nothing to be done for `default_target'.
cd robdd && PATH=../scripts:../util:$PATH MMAKE_VPATH=. MMAKE_DIR=../scripts DESTDIR= ../scripts/mmake -j2
make[2]: Nothing to be done for `default_target'.
cd library && PATH=../scripts:../util:$PATH MMAKE_VPATH=. MMAKE_DIR=../scripts DESTDIR= ../scripts/mmake -j2
../scripts/mgnuc --grade none.gc        --       -c tree234.c -o tree234.o
../scripts/mgnuc --grade none.gc        --       -c array.c -o array.o
tree234.c:619: error: initializer element is not constant
tree234.c:619: error: (near initialization for ‘mercury_common_1[0].f2’)
tree234.c:623: error: initializer element is not constant
tree234.c:623: error: (near initialization for ‘mercury_common_1[1].f2’)
tree234.c:631: error: initializer element is not constant
tree234.c:631: error: (near initialization for ‘mercury_common_1[3].f2’)
tree234.c:640: error: initializer element is not constant
tree234.c:640: error: (near initialization for ‘mercury_common_2[0].f1[1]’)
tree234.c:646: error: initializer element is not constant
tree234.c:646: error: (near initialization for ‘mercury_common_2[1].f1[1]’)
tree234.c:652: error: initializer element is not constant
tree234.c:652: error: (near initialization for ‘mercury_common_2[2].f1[1]’)
tree234.c:658: error: initializer element is not constant
tree234.c:658: error: (near initialization for ‘mercury_common_2[3].f1[1]’)
array.c:681: error: initializer element is not constant
array.c:681: error: (near initialization for ‘mercury_common_1[0].f1[1]’)
array.c:699: error: initializer element is not constant
array.c:699: error: (near initialization for ‘mercury_common_1[3].f1[1]’)
array.c:715: error: initializer element is not constant
array.c:715: error: (near initialization for ‘mercury_common_1[6].f1[0]’)
array.c:717: error: initializer element is not constant
array.c:717: error: (near initialization for ‘mercury_common_1[6].f1[1]’)
array.c:729: error: initializer element is not constant
array.c:729: error: (near initialization for ‘mercury_common_1[8].f1[1]’)
array.c:754: error: initializer element is not constant
array.c:754: error: (near initialization for ‘mercury_common_2[1].f2’)
array.c:758: error: initializer element is not constant
array.c:758: error: (near initialization for ‘mercury_common_2[2].f2’)
array.c:762: error: initializer element is not constant
array.c:762: error: (near initialization for ‘mercury_common_2[3].f2’)
make[2]: *** [array.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [tree234.o] Error 1
make[1]: *** [library] Error 2
make: *** [install] Error 2
然后我通读了自述文件,它说我应该使用GCC的另一个版本。所以我安装了这些命令行工具,我发现它们确实包含GCC,并重试了。没有运气,还是一样的问题


任何帮助都将不胜感激。

嗨,我也有同样的问题

我会随时通知你的,我想我已经知道了。 虽然很有趣,因为我和你的步骤完全一样。 我计划安装新的gcc并选择要编译的gcc

可能也是库鲁汶的学生:

-编辑:

看起来我刚刚修复了它,我下载了GCC4.3,安装了它。 已将此添加到~/.profile:

导出路径=/usr/local/bin:$PATH

运行source ~/.profile并再次尝试制作,它仍在安装中。 它已经跑了4分钟了所以我猜我已经脱离险境了,
上次我花了5秒钟才出错。

我是Mercury OS X端口的主要维护者。对于XCode 4.*,可执行文件 命名的gcc不是真正的gcc,它实际上是llvm gcc的符号链接。llvm gcc有缺陷 无法编译Mercury编译器生成的C代码-我们已经检查过 所讨论的C代码是有效的C,真正的gcc和clang都没有问题

如果您使用的是MacOSX10.7或10.8,我强烈建议您使用clang作为 Mercury的C编译器。 有关详细信息,请参阅发行版中的文件README.clang。或者,你可以
安装gcc的真实版本,例如从macports安装并使用。

在运行configure之前,您可能需要指定要与环境变量一起使用的C编译器。但我不确定,因为我不使用OSX。