16

我正在使用 xcode 中的这个utils.c文件,它具有以下内容:

 #if FF_API_AVCODEC_OPEN
    int attribute_align_arg avcodec_open(AVCodecContext *avctx, AVCodec *codec)
    {
        return avcodec_open2(avctx, codec, NULL);
    }

Expected ; after top level declarator在此行的 xcode 中导致错误(在构建期间):int attribute_align_arg avcodec_open(....

为什么?以及我应该怎么做才能解决这个问题。

谢谢你。

4

3 回答 3

45

我在使用自动完成时遇到了这个错误。

插入函数参数时,XCode 将插入需要编辑但在 GUI 中显示为完全有效的 C++ 的占位符。

我花了几个小时才在另一个编辑器中检查了我的文件,发现这不是预期的:

无效函数(int a)

XCode 实际上已经插入

无效函数(<#int a#>)

在 XCode 编辑器中,参数显示为int a浅蓝色背景,因此不容易发现编译器错误的来源。

于 2013-08-13T08:55:57.000 回答
6

对于以下代码,我在 xcode 中遇到了类似的错误:

#ifndef Parser_hpp
#define Parser_hpp

#include <string>
std::string getTitle();

#endif /* Parser_hpp */

原因是代码必须用 C++ 预处理器指令包装。像这样:

#ifndef Parser_hpp
#define Parser_hpp
#if defined __cplusplus

#include <string>
std::string getTitle();

#endif /* __cplusplus */
#endif /* Parser_hpp */
于 2020-05-22T22:44:09.207 回答
0

在将一个类移动到动态库但留下旧的导入后,我遇到了这个问题。注释掉旧的导入解决了这个问题(但这不是我寻找的第一件事,因为动态库导入更早并且也显示错误)。

于 2018-10-21T18:51:34.467 回答