Forum: Compiler & IDEs gcc 5.2: falsche Benutzung des unvollständigen Typs.


von Kaj G. (Firma: RUB) (bloody)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich versuche gerade PySvn zum laufen zu bekommen,
Betriebssystem ist Arch Linux, Kernel 4.2, GCC 5.2

Projekt-Paket: https://aur.archlinux.org/packages/python-pysvn/
Original-Quelle: http://pysvn.stage.tigris.org/project_downloads.html

So wie es aussieht wurde PySvn ca. 2010 aufgegeben, dieses Jahr im April 
aber ins AUR aufgenommen. Das AUR-Pakete Probleme machen können weiß 
ich.

Ich hab den Output von Make mal als Datei angehangen.

Könnt ihr mir helfen und sagen was mir der Fehler
1
Fehler: falsche Benutzung des unvollständigen Typs »const svn_sort__item_t {aka const struct svn_sort__item_t}«
2
         pysvn_wc_status_t *status = (pysvn_wc_status_t *)item->value;
3
                                                              ^
4
Anmerkung: forward declaration of »svn_sort__item_t {aka struct svn_sort__item_t}«
5
 typedef struct svn_sort__item_t svn_sort__item_t;
sagen soll?
Der Fehler tritt auch noch mit anderen typen auf.
Hab so auf die schnelle nichts zu dem Fehler gefunden. :-/

Und einen alten Compiler nehmen, bei dem der Fehler nicht auftritt ist 
für mich keine Lösung ;)

Wäre für eure Hilfe dankbar.

Grüße

von g457 (Gast)


Lesenswert?

> Könnt ihr mir helfen und sagen was mir der Fehler sagen soll?

..das was dort steht?

> [..] unvollständigen Typs const svn_sort__item_t
       ^^^^^^^^^^^^^^^
"ich weiss nicht was das ist"

> forward declaration of svn_sort__item_t
  ^^^^^^^^^^^^^^^^^^^
"der Typ wurde nie nicht definiert, tu was dagegen"

-> es fehlt die korrekte Typdefinition, vermutlich fehlt ein Header.

HTH

von Rolf M. (rmagnus)


Lesenswert?

Mal daran gedacht, danach einfach zu googeln?
Es hat nichts mit der gcc-Version, sondern mit der Subversion-Version zu 
tun:
http://svn.haxx.se/dev/archive-2014-11/0042.shtml

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

g457 schrieb:
>> [..] unvollständigen Typs const svn_sort__item_t
>        ^^^^^^^^^^^^^^^
> ich weiss nicht was das ist

1) Stell englische Fehlermeldungen ein.

2) Schau im Standared nach, was ein Incomplete Type und wie man ihn
   verwenden darf.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Kaj G. schrieb:

> Könnt ihr mir helfen und sagen was mir der Fehler
> sagen soll?

Zu Deutsch soll die Fehlermeldung ausdrücken:

Ich hab, zum Teufel noch mal, nicht den blassesten Schimmer, wie ein 
svn_sort__item_t aufgebaut ist. Ich weiss zwar, dass es diesen Datentyp 
gibt, denn durch eine forward Declaration hat man mir die Information 
der Existenz gegeben. Aber hier an dieser Stelle muss ich den genauen 
Aufbau davon kennen, weil ich zb auf einen Strukturmember zugreifen soll 
und dazu muss ich wissen an welcher Stelle innerhalb der Struktur dieser 
Member liegt und wie gross er ist. Dazu hilft es mir aber nichts, wenn 
man mir sagt, dass es tatsächlich diese Struktur gibt - ich muss dazu 
den genauen Aufbau kennen und den hab ich nicht.

Im übrigen solltest du auch alle Warnungen beseitigen. Warnungen können 
harmlos sein, müssen es aber nicht zwangsläufig sein. Tatsache ist 
jedoch, dass man Gefahr läuft, die tatsächlich nicht harmlosen Warnungen 
im Wust aller Warnungen zu übersehen, wenn man nicht konsequent sich 
auch um Warnungen kümmert und sie eliminiert.

: Bearbeitet durch User
von Carl D. (jcw2)


Lesenswert?

Wenn man einen Pointer auf eine Klasse/Struktur deklarieren will, dann 
braucht man nur deren Name. Denn der Pointer ist ja nur eine Wert mit 
systemspezifisch fixer Bit-Anzahl.
Greift man über diesen Pointer dann uaer Komponenten zu, dann braucht 
der Compiler die ganze Definition der Klasse/Struktur. Genau das 
passiert bei "->" Operator.

Das war doch jetzt nich völlig abwegig, oder?

Mein Tip: Fehlermeldung in Google und irgendwas von Stackoverflow.com 
raussuchen, da stellt man fest, daß man nicht allein ist. (Sorry für die 
Schleichwerbung, aber genau so mache ich es)

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.