Forum: PC-Programmierung Code::Blocks Kompilierfehler


von Christopher C. (Gast)


Lesenswert?

Hallo,

ich habe das Problem, dass wenn ich in Code::Blocks ein Projekt 
kompilieren will das eine eigen erstellte lib benutzt, der Compiler 
anscheinend die Quellcode Dateien nicht finden kann. Der Effekt entsteht 
erst, wenn ich die Suchpfade für den Compiler und Linker angebe, wo sich 
die lib und die Header befinden.

Hier der Build log:
mingw32-gcc.exe -Wall  -g  -g   -I"C:\Users\Christopher\Documents\C 
Projekte\CFramework\"  -c "C:\Users\Christopher\Documents\C 
Projekte\CFramework_Test\main.c" -o obj\Debug\main.o

mingw32-gcc.exe: Projekte\CFramework_Test\main.c -o obj\Debug\main.o: No 
such file or directory

mingw32-gcc.exe: no input files
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings

Ich komm einfach nicht drauf was ich falsch mache. Suchpfade und lib 
sind korrekt angeben.

Vielen Dank für eure Hilfe!

von hp-freund (Gast)


Lesenswert?

Christopher C. schrieb:
> mingw32-gcc.exe: Projekte\CFramework_Test\main.c

Heisst dein Ordner nicht "C Projekte" ?

Nimm mal einen Pfad ohne Leerzeichen.

von Christopher C. (Gast)


Lesenswert?

Endlich funktioniert es! Tatsächlich es war das Leerzeichen.
Vielen Dank ;).

mfg

von Sharping (Gast)


Lesenswert?

Oha, das klingt aber nach einem üblen Bug in Code::Blocks.
Sollte man gleich mal den Entwicklern melden...

von Dennis H. (c-logic) Benutzerseite


Lesenswert?

Bug ist aber etwas übertrieben ausgedrückt.
Eine Pfadangabe die Leerzeichen beinhaltet ohne umschliessende " ist 
noch kein Bug.

von Karl H. (kbuchegg)


Lesenswert?

Dennis Heynlein schrieb:
> Bug ist aber etwas übertrieben ausgedrückt.
> Eine Pfadangabe die Leerzeichen beinhaltet ohne umschliessende " ist
> noch kein Bug.

Na ja.
Wenn du mal da oben den Buildlog anschaust, dann hat er da schon " rund 
um das entsprechende Argument. Also doch ein Bug

Trotzdem ist es keine gute Idee, als Softwareentwickler sich von solchen 
Dingen abhängig zu machen. Leerzeichen in Pfadnamen und Umlaute sind was 
für BWL Studenten und Manager, die ohne so ein Hilfmittel ihre Sachen im 
PC nicht wiederfinden. Als Entwickler steht man über den Dingen und 
benutzt Angaben, die möglichst wenig Möglichkeiten für wie auch immer 
geartete Fehler haben. Wir haben auch so schon genug Ärger am Hals, das 
wir solche optischen Gimmicks nicht brauchen. Und das bedeuet: keine 
Leerzeiche, keine Umlaute.

von hosentraeger (Gast)


Lesenswert?

> Trotzdem ist es keine gute Idee, als Softwareentwickler sich von solchen
> Dingen abhängig zu machen. Leerzeichen in Pfadnamen und Umlaute sind was
> für BWL Studenten und Manager, die ohne so ein Hilfmittel ihre Sachen im
> PC nicht wiederfinden. Als Entwickler steht man über den Dingen und
> benutzt Angaben, die möglichst wenig Möglichkeiten für wie auch immer
> geartete Fehler haben. Wir haben auch so schon genug Ärger am Hals, das
> wir solche optischen Gimmicks nicht brauchen. Und das bedeuet: keine
> Leerzeiche, keine Umlaute.

Das finde ich nicht. Wenn in einem Pfad Umlaute, Leerzeichen usw.
erlaubt sind, dann soll man die auch benutzen koennen. Wenn ein
Programm damit nicht klar kommt, dann ist es halt ein Bug des
Programms.

hosentraeger

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> Leerzeichen in Pfadnamen und Umlaute sind was
> für BWL Studenten und Manager, die ohne so ein Hilfmittel ihre Sachen im
> PC nicht wiederfinden.

Unter Windows wurden in der vor-Vista-Zeit bestimmte Verzeichnisse mit 
lokalisierten Namen versehen, so z.B. das Verzeichnis, in das Programme 
üblicherweise installiert werden.

Die deutsche Lokalisation machte daraus:

c:\Programme

während die englische Lokalisation das so benannte:

c:\Program Files

Das ist seit Windows 95 so, seitdem enthält dieser Verzeichnisname ein 
Leerzeichen.

Und seit Vista heißt dieses Verzeichnis sowieso immer so, bzw. noch 
schlimmer:

c:\Program Files (x86)

... mit sogar zwei Leerzeichen darin.


Windows ist offensichtlich nicht für Benutzer von Kommandozeilen 
gebastelt worden, obwohl mir die Art der Kommandozeilenvervollständigung 
in cmd.exe dort besser gefällt als das, was die Bash unter OS X 
standarmäßig macht (nämlich Bing!). Aber vielleicht habe ich auch nur 
nicht die richtige Einstellung dazu, und erwarte Dinge, die nicht 
erwartet werden dürfen.

Unter OS X dürfen Dateinamen auch Leerzeichen am Anfang und am Ende 
haben, und auch mit einem Punkt aufhören.

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.