gpt4 book ai didi

c - dbus-1 gcc错误: expected ';' , ','或 ')'在 'struct'之前

转载 作者:行者123 更新时间:2023-11-30 16:58:40 25 4
gpt4 key购买 nike

我尝试在项目中使用 mingw32-gcc 编译 dbus-1,但出现编译器错误

 error: expected ';', ',' or ')' before 'struct'.

据我所知,有问题的行是一个函数调用。这是 makefile 日志的摘录:

` c:/MinGW/include/dbus-1.0/dbus/dbus-message.h:73:95: error: expected ';', ',' or ')' before 'struct'
DBusMessage* dbus_message_new_method_call(const char *bus_name, const char *path, const char *interface ,const char *method);`

以下是 dbus-message.h 头文件的摘录:

#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
#endif

#ifndef DBUS_MESSAGE_H
#define DBUS_MESSAGE_H

#include <dbus/dbus-macros.h>
#include <dbus/dbus-types.h>
#include <dbus/dbus-arch-deps.h>
#include <dbus/dbus-memory.h>
#include <dbus/dbus-errors.h>
#include <stdarg.h>

DBUS_BEGIN_DECLS

/**
* @addtogroup DBusMessage
* @{
*/

typedef struct DBusMessage DBusMessage;
/** Opaque type representing a message iterator. Can be copied by value, and contains no allocated memory so never needs to be freed and can be allocated on the stack. */
typedef struct DBusMessageIter DBusMessageIter;

/**
* DBusMessageIter struct; contains no public fields.
*/
struct DBusMessageIter
{
void *dummy1; /**< Don't use this */
void *dummy2; /**< Don't use this */
dbus_uint32_t dummy3; /**< Don't use this */
int dummy4; /**< Don't use this */
int dummy5; /**< Don't use this */
int dummy6; /**< Don't use this */
int dummy7; /**< Don't use this */
int dummy8; /**< Don't use this */
int dummy9; /**< Don't use this */
int dummy10; /**< Don't use this */
int dummy11; /**< Don't use this */
int pad1; /**< Don't use this */
int pad2; /**< Don't use this */
void *pad3; /**< Don't use this */
};

DBUS_EXPORT
DBusMessage* dbus_message_new (int message_type);
DBUS_EXPORT

DBusMessage* dbus_message_new_method_call(const char *bus_name, const char *path, const char *interface ,const char *method);

我无法弄清楚为什么编译器认为接口(interface)是一个结构。从 c 源代码和其他 header 来看,它似乎是一个字符字符串指针。

非常感谢任何建议。

最佳答案

我不确定您提供的代码是否是整个头文件。但是,如果是这样,看起来您缺少 #ifndef DBUS_MESSAGE_H header 保护的 #endif。尝试将 #endif 放在文件末尾。

关于c - dbus-1 gcc错误: expected ';' , ','或 ')'在 'struct'之前,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38648119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com