Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.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
C++ 错误:";“开始”;在Win64 ABI函数中使用,让thi seero在叮当声中帮助我解决这个问题?_C++_C_Clang_Covariance - Fatal编程技术网

C++ 错误:";“开始”;在Win64 ABI函数中使用,让thi seero在叮当声中帮助我解决这个问题?

C++ 错误:";“开始”;在Win64 ABI函数中使用,让thi seero在叮当声中帮助我解决这个问题?,c++,c,clang,covariance,C++,C,Clang,Covariance,我已经编译过了,但是在ubuntu中使用CLANG编译时,我遇到了类似这样的错误:“va_start”用于Win64 ABI函数。有人能帮我吗?由于您的函数是静态的,我怀疑您是否将其作为参数传递到任何地方,我相信您可以在此处(以及声明中)删除EFIABIEFIABI是一种4寄存器调用约定,GCC似乎不支持变量参数。va.*是按clang明确禁止的。如果要在linux和windows目标之间进行“交叉编译”,请使用内置程序,根据,还可以添加\uuuu属性\uuuu((ms\u abi)),否则它也

我已经编译过了,但是在ubuntu中使用CLANG编译时,我遇到了类似这样的错误:“va_start”用于Win64 ABI函数。有人能帮我吗?

由于您的函数是静态的,我怀疑您是否将其作为参数传递到任何地方,我相信您可以在此处(以及声明中)删除
EFIABI
EFIABI
是一种4寄存器调用约定,GCC似乎不支持变量参数。

va.*
是按clang明确禁止的。如果要在linux和windows目标之间进行“交叉编译”,请使用内置程序,根据,还可以添加
\uuuu属性\uuuu((ms\u abi))
,否则它也无法工作,请参阅


不管是什么调用约定,都可能不支持varargs?Thnaks,但我尝试过删除EFIABI,但它不起作用。然后会发生什么?然后编译器被设置为具有默认调用约定我猜,所以,我猜您需要在这里手动指定另一个调用约定。是的,除了这个错误,我还收到了“错误:禁用SSE的SSE寄存器返回”。是的,工作正常,谢谢。您能在这方面提供帮助吗?错误:禁用SSE的SSE寄存器返回。在下面的行double difftime(time_t time1,time_t time0){return(double)(time1-time0);}
static int
__attribute__((ms_abi))
va_Utimes(
  const char   *path,
  ...
  )
{
  __builtin_ms_va_list ap;

  __builtin_ms_va_start(ap, path);
  retval = ...ioctl( filp, FIOSETIME, ap);
  __builtin_ms_va_end(ap);

  return retval;
}