LINUX.ORG.RU

[C/C++] Структура с объявлением в хидере и реализацией в библиотеке


0

0
Помогите пожалуйста гуру C и С++ :)
Есть некоторая библиотека, если быть точным libalpm (от Арчевского пакмана). Чтобы ее использовать, есть хидер alpm.h, который я собственно и инклюжу. Кратко в хидере:

#ifndef _ALPM_H
#define _ALPM_H

#ifdef __cplusplus
extern "C" {
#endif
---8<---8<---8<---8<---8<---8<---8<---8<---8<---
typedef struct __pmpkg_t pmpkg_t;
---8<---8<---8<---8<---8<---8<---8<---8<---8<---
#ifdef __cplusplus
}
#endif
#endif /* _ALPM_H */

__pmpkg_t реализуется в исходниках самой библиотеки, которую естественно надо линковать к моей проге, вот только при создании переменной в моей программе, с типом pmpkg_t, g++ при компиляции ругается:

error: aggregate 'pmpkg_t pkg' has incomplete type and cannot be defined

Собственно оно вроде правильно, так как тип объявлен, а еще не реалихован, но по идее это должно разрешиться в момент линковки, только как его заставить g++ это сделать?

anonymous
обычно такие структуры везде передаются как указатели. ищи какой-нибудь конструктор.
Legioner ★★★★★
()
Ответ на: комментарий от Legioner
Так мне все равно компилятор не даст использовать тип, который не реализован полностью, я даже тупо не мого сделать pmpkg_t *pkg = NULL
anonymous
()
>Помогите пожалуйста гуру C и С++ :)

Это ты что ли "гуру C и С++"? ;-) А чего тогда сам не разобрался? ))

php-coder ★★★★★
()
Ответ на: комментарий от php-coder
> Это ты что ли "гуру C и С++"? ;-) А чего тогда сам не разобрался? ))

Помогите пожалуйста, гуру C и С++ :) Так лучше?

anonymous
()
цЫрк)))
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.