尝试安装OpenMPI时,.configure文件在检查所选编译器的ISO C99能力的部分失败。
当gcc当然同时有std = gnu99和std = c99选项时,我很困惑,我修剪了20,000行配置文件以隔离违规部分。最后我追溯到gcc 5而不是编译变量参数函数。
以下代码生成“后缀或操作数对于'movq'无效”错误,这是.configure文件失败的根本原因。
(我所遵循的OpenMPI的逐步安装是https://wiki.helsinki.fi/display/HUGG/Installing+Open+MPI+on+Mac+OS+X)
任何人都看过这个并且知道如何修复它?
//-----------------------------------------------------------------------------
// This fails to compile with gcc 5.3
//
// Command: gcc test4.c
//
// Error is:
// /var/folders/4s/gkkpz000gn/T//ccAraq59.s:47:suffix or operands invalid for `movq'
// /var/folders/4s/gkg0r000gn/T//ccAraq59.s:52:suffix or operands invalid for `movq'
//
// gcc version is 5.3.0:
//
// $ gcc --version
// gcc (GCC) 5.3.0
// Copyright (C) 2015 Free Software Foundation, Inc.
// This is free software; see the source for copying conditions. There is NO
// warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//
//-----------------------------------------------------------------------------
// Check varargs
static void
test_varargs (const char *format, ...)
{
}
//--------------------------------------------------------------
// MAIN {}
//--------------------------------------------------------------
int
main ()
{
//====================================================
// Check varargs.
// test_varargs ("s", "string"); //WORKS
// test_varargs ("d' ", 65); //WORKS
// test_varargs ("s, d' ", "string", 65); //WORKS
test_varargs ("f .", 34.234); // FAILS!!!
test_varargs ("s, d' f .", "string", 65, 34.234); //ALSO FAILS
//====================================================
return 0;
}
答案 0 :(得分:3)
TLDR:brew和XCode gcc安装之间存在冲突。
我最终卸载了所有安装的gcc版本,删除了g ++,删除了剩下的所有悬空链接。接下来,我从XCode 6升级到7并使用随附的gcc版本。这解决了上述问题。 删除所有悬空符号链接和OpenMPI的unziped tar-ball然后重新解压缩允许安装OpenMPI顺利安装。 cd ./examples,make all,mpirun -np 4 hello_c工作,我们有一个快乐的MPI安装。