Wenn ich kompilieren und eine Anwendung in QtCreator ausführen, ist das aktuelle Arbeitsverzeichnis das Build-Verzeichnis, dh der Ordner namens "build-MyProject-Desktop_Qt_5_4_0_MSVC2013_32bit" in meinem Fall, aber dies ist nicht das Verzeichnis, in dem sich die Exe befindet. Die Exe kann im Unterverzeichnis debug oder release gefunden werden, welches das "aktuelle Arbeitsverzeichnis" ist, wenn ich die exe außerhalb von QtCreator ausführe. Wie kann ich QtCreator dazu bringen, diesen Pfad als aktuelles Arbeitsverzeichnis zu verwenden? Ich habe bereits versucht, das Verzeichnis unter "Projekte" in meinen Run-Einstellungen zu ändern, aber es sieht so aus, als könnte ich nicht verschiedene Verzeichnisse für die Debug- und Release-Builds verwenden.Ausführen von exe in QtCreator hat andere Arbeitsverzeichnis als außerhalb QtCreator
edit: Dies ein Duplikat nennen ist meiner Meinung nach ein bisschen weit hergeholt, weil das "Duplikat" sich auf die Erstellung einer Datenbank bezieht, während sich meine auf seltsames Verhalten von QtCreator bezieht. Die Frage, die ich tatsächlich gestellt habe, war, wie man die Eigenschaften von QtCreator ändert, weil es seltsam ist, meine Exe von einem übergeordneten Ordner aus aufzurufen. Visual Studio hat mir das nie angetan. Die Lektion (benutze das aktuelle Arbeitsverzeichnis nicht, wenn du es nicht explizit angegeben hast) könnte gleich sein, aber die Fragen waren völlig anders, also hatte ich keine Möglichkeit, eine Lösung für mein Problem zu finden, indem ich stackoverflow durchsuchst anstatt zu fragen.
Können Sie nicht eine andere Art und Weise dieses Problem umgehen? In einem allgemeinen Sinne haben Sie als Entwickler keine Kontrolle darüber, was der Benutzer, der Ihr Programm aufruft, als aktuelles Arbeitsverzeichnis hat. Es ist ziemlich unflexibel, Dinge über Ihre CWD in Ihrem Code zu vermuten ... – rubenvb
Ich verstehe. Nun, ich möchte auf einige Dateien im Zusammenhang mit meiner exe zugreifen, wenn ich nicht sicher sein kann, dass das immer der CWD ist. Sollte ich mit Kevins Antwort weiter unten gehen? – Alex
siehe meine Antwort für eine robuste Lösung für Ihr Problem. – rubenvb