Я пытаюсь написать библиотеку go, которая будет работать в качестве внешнего интерфейса для библиотеки C. Если одна из моих структур C содержит size_t
, я получаю ошибки компиляции. AFAIK size_t
- это встроенный тип C, так почему бы не узнать его?
Мой заголовочный файл выглядит так:
typedef struct mystruct
{
char * buffer;
size_t buffer_size;
size_t * length;
} mystruct;
и ошибки, которые я получаю:
gcc failed:
In file included from <stdin>:5:
mydll.h:4: error: expected specifier-qualifier-list before 'size_t'
on input:
typedef struct { char *p; int n; } _GoString_;
_GoString_ GoString(char *p);
char *CString(_GoString_);
#include "mydll.h"
Я даже пытался добавить // typedef unsigned long size_t
или // #define size_t unsigned long
в файл .go до #include
, а затем я получаю "gcc произведен без вывода".
Я видел эти вопросы и просмотрел пример безуспешно.