www.mikrocontroller.net

Forum: PC-Programmierung Programm lässt sich nicht compilieren


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Fragensteller (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Programm lässt sich nicht compilieren:

http://upload.wikimedia.org/wikibooks/de/3/3a/QwtSinus.png

meine Kurvenplot.pro-Datei:

QT += core
INCLUDEPATH += c:\qwt-6.0.1\include\qwt
LIBS += c:\qwt-6.0.1\lib\ -lqwt

TARGET = Kurvenplot
SOURCES += main.cpp

Mein Kurvenplott.cpp wie das Beispiel in dem Link.

Fehlermeldung beim Compilieren:
C:\....\ -lqwl no such file or directory.

Was mache ich beim Compilieren falsch?

Autor: Antworter (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
nichts, denn der Fehler passiert beim Linken.

vieleicht ist:

LIBS += c:\qwt-6.0.1\lib\

besser.
Das " -lqwt" ist die Compileroption und nicht Teil des Lib-Pfads.

Autor: Fragensteller (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
ok, habs weggelassen.

Jetzt bin ich einen Schritt weiter gekommen, aber nun mit einer anderen 
Fehlermeldung

Starte 
C:\...\Kurvenplot-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__De 
bug\debug\Kurvenplot.exe...Invalid  parameter passed to C runtime 
function.
Invalid parameter passed to C runtime function.
QWidget: Must construct a QApplication before a QPaintDevice

Autor: Fragensteller (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Jetzt kommen zwei andere Fehlermeldungen:

:-1: Fehler:cannot open output file debug\Kurvenplot.exe: Permission 
denied
:-1: Fehler:collect2: ld returned 1 exit status

Autor: Karl Heinz Buchegger (kbuchegg) (Moderator)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Fragensteller schrieb:

> QWidget: Must construct a QApplication before a QPaintDevice


Und das Programm welches du kompiliert hast, sieht wie aus?

Autor: Fragensteller (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Karl Heinz Buchegger schrieb:
> Und das Programm welches du kompiliert hast, sieht wie aus?

das war noch ein anderer Fehler, beim Erstellen eines neuen Projektes 
war die main.cpp nicht leer, da stand noch was mehr drinnen, ein Rest 
von was anderem, den habe ich weggemacht und jetzt ist nur noch das 
reine Beispiel drinnen, wie in dem Link, jedoch kommen jetzt die beiden 
Fehlermeldungen

cannot open Kurvenplot.exe, permission denied ...

Autor: Fragensteller (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Und wenn ich umschalte beim Compilieren von ... Debug auf ... Release, 
dann kommt eine ganze Horde Fehler wie

C:\...\Kurvenplot\main.cpp:-1: Fehler:undefined reference to 
`QwtPlot::QwtPlot(QWidget*)'

C:\...\Kurvenplot\main.cpp:-1: Fehler:undefined reference to 
`QwtPlotCurve::QwtPlotCurve(QString const&)'

... davon noch ein paar Stück

Autor: Decius (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Also wenn mich das Bild am Anfang nicht täuscht, arbeitest Du unter 
Linux. Da gibt es aber keine Laufwerke wie "C:". Deshalb passen Deine 
ganzen Pfadangaben auch überhaupt nicht zu Linux.

Das Rootverzeichnis(Stammverzeichnis) in Linux ist "/" Das gilt dann 
aber für den gesamten Rechner. Laufwerke werden unter Linux einfach in 
den Verzeichnisbaum eingehängt(mounted). Außerdem kein Backslah nur 
Slashes verwenden!

Falsch:
C:\...\Kurvenplot-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__De

Richtig:
/.../Kurvenplot-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__De

Punkte eben noch auffüllen!

Autor: Fragensteller (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Decius schrieb:
> Also wenn mich das Bild am Anfang nicht täuscht, arbeitest Du unter
> Linux.

Nee, Windoes 7

>C:\...\Kurvenplot-build-desktop-Qt_4_8_1_for_Desktop_-_MinGW__Qt_SDK__D e

Das ist die Fehlermeldung, der Pfad ist schon richtig, habe nur die 
Punkte dareingesetzt, weil der Pfad sonst zu lang wird - ist das 
Resultat der Fehlermeldung, nicht von mir im Programm gemacht.

Autor: Decius (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Windows 7 mit OpenSUSe Logo soso! Selbst in einer virtuellen Maschine 
mit Linux unter Windows würden die Linuxregeln für Pfadangaben gelten.

Deshalb vorsicht TROLL!

Autor: Decius (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Eben: Sieh Dir doch mal die URL ganz genau an. Meinst Du, daß das ein 
Screenshot des Threadstarters ist?

Autor: J. L. (radiostar)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Fragensteller schrieb:
> cannot open Kurvenplot.exe, permission denied ...

fehlende Schreibrechte für den gewählten Pfad? Oder Kurvenplot.exe ist 
schon von einer anderen Applikation belegt - ein altes Windows-Problem, 
bringt mich regelmäßig zur Weißglut.

> Und wenn ich umschalte beim Compilieren von ... Debug auf ... Release,
> dann kommt eine ganze Horde Fehler wie

Dann stimmen wohl die Einstellungen für das Release-Build nicht. 
Nachzuprüfen unter Projects->Build Settings. Vergleiche mal die 
Library-Einstellungen für Release und Debug

Autor: Karl Heinz Buchegger (kbuchegg) (Moderator)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
J. L. schrieb:
> Fragensteller schrieb:
>> cannot open Kurvenplot.exe, permission denied ...
>
> fehlende Schreibrechte für den gewählten Pfad? Oder Kurvenplot.exe ist
> schon von einer anderen Applikation belegt - ein altes Windows-Problem,
> bringt mich regelmäßig zur Weißglut.

Jup.

Sein erster Versuch das Programm laufen zu lassen, ist ja in einem 
Absturz gemündet. Wenn Windows die EXE gelockt hat, bis das EXE 
terminiert, dann kann man nicht neu drüber schreiben. Passiert im 
Developer Studio auch ab und an, dass DLLs gelockt bleiben, wenn ich die 
EXE im Debugger abwürge.


@Fragensteller
Reboote mal deinen PC

Autor: Fragensteller (Gast)
Datum:
Angehängte Dateien:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Karl Heinz Buchegger schrieb:
> @Fragensteller
> Reboote mal deinen PC

Das habe ich gemacht, jetzt lies es sich auch compilieren wieder, aber 
es kamen nun erneut einige Fehlermeldungen.

Ich habe jetzt mal einen Screenshot gemacht mit dem Quelltext von 
main.cpp, der Projektdatei mit den Pfadoptionen und unten der 
Fehlerausgabeleiste.

Autor: Fragensteller (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht lesenswert
Ich habe zu diesem Link nochmal eine Frage:

http://qwt.sourceforge.net/class_qwt_plot.html

Dort steht in einem Beispiel:

>>...
>>QwtPlot *myPlot = new QwtPlot("Two Curves", parent);
>>...

In dem anderen Beispiel steht ja "nur"

QwtPlot plot;

Liegt darin vielleicht der Hund begraben, dass die Zuweisung in dem 
Beispiel falsch sein könnte? Ich habe es mal ausprobiert, dass ich aus 
dem plot einen Pointer gemacht habe *plot, dann kamen andere 
Fehlermeldung, oder auch mit einer dierekten Speicheradresse &plot;, 
dann waren die Fehlermeldungen wieder anders, cih hab auch ausprobiert 
später aus plot.show(); plot->show(); gemacht und so, verschiedene 
Variationen durchgespielt, aber leider bisher erfolglos.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net