QtCreator einfaches Konsolenprogramm (ohne Qt) kompilieren. Problem bei Erstellung.
-
Hi,
mein Problem hat zwar nichts direkt mit Qt zu tun, weil es sich jedoch um den QtCreator handelt und die meisten hier damit wahrscheinlich arbeiten, poste ich hier...
Wenn ich im QtCreator ein einfaches C++ Projekt (ohne Qt, mit CMake) erstelle, wird ja ein einfaches Hello-World-Programm angelegt. So, das lässt sich auch einwandfrei kompilieren und ausführen.
Ändere ich nun irgendwas im Code, zB:
"Hello World" -> "Hello All"
Dann bekomme ich eine Fehlermeldung:
- "cannot open output file test1.exe: Permission denied"
- "error: ld returned 1 exit status" collect2.exeWenn ich das Projekt so speichere, QtCreator schließe und das Projekt einfach neu öffne und gleich kompiliere, so funktioniert es wieder einwandfrei. Ich kann beliebig oft neu kompilieren, ohne Fehler. Nur wenn ich wieder einen Buchstaben im Quellcode ändere, kommt wieder diese Fehlermeldung und ich muss QtCreator neu starten um das vorher geänderte Projekt zu kompilieren
Das ist sicher irgendein Anfängerfehler bezüglich CMake. Da ich mich jedoch auf eine einzige IDE einüben will, in der ich blanke Konsolenprogramme und eben auch Qt-GUI-Programme schreiben möchte, würde ich mich über einen Starttip bezüglich des Fehlers freuen
Gruß,
Andi
-
Hallo Beefi,
ich würde meinen, dass der Prozess noch geöffnet ist, wenn Du ihn neu kompilieren möchtest. Jedoch kannst Du das Projekt nicht neu kompilieren, wenn es gerade ausgeführt wird. Was ich aber komisch finde, ist, dass bei Dir bei einem normalen "Hallo Welt"-Programm der Prozess nicht schließt. Hantierst Du etwa mit
QApplication
rum? Wenn ja, dann lass das mal ganz bei Seite, wenn Du nur Konsolenzeug kompilieren willst.Ansonsten zeig mal Code.
-
Hi Steak,
danke für deine Antwort.
Nein, ich hantiere nicht mit QApplication rum...es ist ein blankes neues Projekt OHNE Qt. Wenn man im Creator ein neues Projekt erstellt, dann meine ich die Option:
C/C++ Projekte (ohne Qt) -> C++-Projekt (CMake)
Es wird darauf ein frisches Projekt in einer main.cpp mit einem Hello World Beispielcode erzeugt.
Und der Code ist absolut korrekt und auch kompilierbar und ausführbar.Ich bin dem Fehler schon etwas näher gekommen:
Habe das ganze QtCreator-Paket samt Libs, MinGW usw deinstalliert. Dann nur den puren QtCreator 2.7.0 (52 MB) installiert. MinGW habe ich ebenfalls händisch runtergeladen (4.7.4) und PATH eingerichtet.
Die Qt-Libs hab ich jetzt mal weggelassen.Alles wie vorher:
Ich kann so oft ich will kompilieren: Alles einwandfrei!
Ich kann so oft ich will ausführen: Alles einwandfrei!
Ich kann das ganze total durcheinander machen: Alles einwandfrei!Sobald ich am Code irgendwas ändere, auch wenn ich nur ein "l" von "Hallo" lösche und wieder kompiliere, so erhalte ich den Fehler!
Ich habs auch mit dem VC++ Compiler probiert (Visual Studio 2012 Express ist auch noch installiert)...das allergleiche Problem!
Fehler bei MinGW:
cannot open output file text.exe: Permission denied
error: ld returend 1 exit statusFehler bei VC++:
LNK1168: "test.exe" kann nicht zum Schreiben geöffnet werden.Also greift irgendwas auf die EXE zu. Aber nein, es ist noch schlimmer. Wenn ich nach diesem Fehler diese EXE lösche, taucht sie danach gleich wieder auf! Ich kann sie 3 mal, 4 mal und noch öfter löschen, sie taucht immer wieder auf...bis ich sie entweder oft genug gelöscht hab oder eine bestimmte Zeit vergangen ist (vielleicht so 1-2 Minuten). Was läuft denn da verkehrt???
Ich hab ein frisches und Virenfreies System...Win7x64 Professional. Auch mit abgeschaltetem Antivirus-Programm wird das Problem nicht behoben.Abgesehen vom Creator hab ich keine Probleme. Ich kann direkt in der Konsole oder mit jedem beliebigen Editor oder IDE kompilieren.
Der Fehler muss also irgendwo beim Creator oder diesem CMake-Programm liegen.
CMake ist neu für mich, vielleicht mach ich da was falsch. Ich habe es einfach runtergeladen (v2.8.10.2 Win32 x86) und installiert (ohne PATH Eintrag). Wenn QtCreator dann bei der Projekterstellung nach der ausführbaren CMake-Datei fragt, gebe ich die cmake.exe an...was er auch annimmt.Weiß jemand Rat? Bin für jede Hilfe dankbar.
Gruß,
Andi
-
...
-
Ja, hatte ich ja geschrieben. Aber auch wenn ich ihn komplett deaktiviere, besteht das Problem immer noch. Ansonsten läuft kein Sicherheitsprogramm.