错误:在输入结束时预期'}'

时间:2011-06-15 21:56:41

标签: c++ compiler-errors syntax-error

我有以下代码:

#include <libubuntuone-1.0/u1-music-store.h>
#include <libsyncdaemon-1.0/libsyncdaemon/syncdaemon-authentication.h>
#include <libsyncdaemon-1.0/libsyncdaemon/syncdaemon-credentials.h>
#include <libsyncdaemon-1.0/libsyncdaemon/syncdaemon-daemon.h>

static void
get_credentials (U1MusicStore *music_store,
                                 gchar **oauth_consumer_token,
                                 gchar **oauth_consumer_secret,
                                 gchar **oauth_token,
                                 gchar **oauth_token_secret)
{
    SyncdaemonCredentials *credentials;
    *oauth_consumer_token = *oauth_consumer_secret = *oauth_token = *oauth_token_secret = NULL;

    *oauth_consumer_token = g_strdup (syncdaemon_credentials_get_consumer_key (credentials));
    *oauth_consumer_secret = g_strdup (syncdaemon_credentials_get_consumer_secret (credentials));
    *oauth_token = g_strdup (syncdaemon_credentials_get_token (credentials));
    *oauth_consumer_secret = g_strdup (syncdaemon_credentials_get_token_secret (credentials));
}

int main() 
{
    return 0;
}

并且唯一阻止它编译的是该问题标题中指定的错误消息。问题行已被确定为main函数的右大括号,但显然情况并非如此,我无法看到我可能错过任何括号的其他位置。谁能在这里发现我做错了什么?

2 个答案:

答案 0 :(得分:5)

如果出现此类错误,最好本地化错误。你可以通过注释代码块来简单地完成它。

在此示例中,您可以评论正文get_credentials函数,并检查会发生什么。

最好在源代码文件的末尾粘贴空行。

答案 1 :(得分:4)

也许某些包含的标题包含不匹配的大括号。

也许编译器在处理非空最后一行的文件时很糟糕,并且某些文件中有这样的行。

尝试尽可能多地注释掉(特别是所有包含)以使其编译,然后重新放入代码,直到您将问题本地化为止。