При запуске из криейтора другая текущая директория
Имхо - это смотря что и как и где указано в .pro файле, и как именно проводится сборка.
Если это "теневая сборка"(гадочка в разделе проект в креаторе) - то тогда настройки .pro во многом игнорятся и каталоги вывода свои.
Но имхо, это галочка "для начинающих", которые не хотят разбираться в настройках и не хотят что бы промежуточные файлы сборки мешались с исходниками. Естественно, что настройки для начинающих "создают коллизии", когда вы пытаетесь сделать что-то более сложное чем простое приложение.
Лично я определяю свои каталоги для временных файлов и каталог вывода, чтобы точно знать в каких каталогах у меня будут лежить мои бинарники, и где я должен определять каталоги с ресурсами и всего прочего что нельзя зафиксировать и вложить в бинарник на этапе сборки.
Вот типичный кусок из моего .pro файла.
TARGET = my_app_name
win32 {
MOC_DIR += build/win
OBJECTS_DIR += build/win
DESTDIR += ./bin/win
else {
MOC_DIR += build/lin
OBJECTS_DIR += build/lin
DESTDIR += ./bin/lin
}
Естественно, это требует создания в каталоге исходников каталого ./build/lin ./build/win ./bin/lin ./bin/win .
И естественно, я снимаю галочку "теневая сборка в креаторе".
но зато я всегда точно знаю куда будет уложен бинарник, где у меня должны лежать каталоги с ресурсами,
что бы
относительно пути бинарника (его можно извлечь из QApplication кажется), я мог успешно их отсыкать. (именно пути бинарника, а не рабочего каталога)
меня такой подход пока ещё не подводил.
PS: Из минусов описанного выше примера .pro - релиз и дебаг ложатся в один каталог. Мне это не мешает, но по идее - надо исправить. не?