varargs函数的gcc 5出错:后缀或操作数对于'movq';

varargs函数的gcc 5出错:后缀或操作数对于'movq';,gcc,openmpi,gcc5,Gcc,Openmpi,Gcc5,尝试安装OpenMPI时,检查所选编译器的ISO C99能力部分中的.configure字段失败 由于gcc当然同时具有std=gnu99和std=c99选项,我对20000行的configure文件进行了修剪,以隔离有问题的部分。最后,我追溯到gcc 5,它没有编译变量参数函数 下面的代码生成“后缀或操作数对于'movq'无效”错误,这是.configure文件失败的根本原因 (以下是OpenMPI I的分步安装) 有人见过这个问题,知道如何解决吗 //--------------------

尝试安装OpenMPI时,检查所选编译器的ISO C99能力部分中的.configure字段失败

由于gcc当然同时具有std=gnu99和std=c99选项,我对20000行的configure文件进行了修剪,以隔离有问题的部分。最后,我追溯到gcc 5,它没有编译变量参数函数

下面的代码生成“后缀或操作数对于'movq'无效”错误,这是.configure文件失败的根本原因

(以下是OpenMPI I的分步安装)

有人见过这个问题,知道如何解决吗

//-----------------------------------------------------------------------------
// 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;
 }

TLDR:brew和XCode gcc安装之间存在冲突

我最终卸载了所有安装的gcc版本,删除了g++,删除了所有剩下的悬空链接。接下来,我从XCode 6升级到7,并使用了它附带的gcc版本。这解决了上述问题。
删除所有悬空的符号链接和OpenMPI的解压tar球,然后重新解压,这样就可以顺利安装OpenMPI。cd./examples,make all,mpirun-np 4 hello_c工作正常,我们有一个愉快的MPI安装

你能发布中间程序集吗?@IgnacioVazquez Abrams我最终卸载了所有安装的gcc版本,因为Xcode安装和brew安装之间似乎存在冲突。然后从6升级到XCode 7并删除g++也解决了这个问题。谢谢你的回复!