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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.