У меня такая же проблема, и мое решение может вам помочь.
Теперь я работаю с Qt5.0.1, и есть два дистрибутива для работы с окнами с ним: Qt5.0.1-mingw и Qt5.0.1-msvc2010. Мне пришлось использовать mingw, и возникла проблема с моей настройкой, которую «/» игнорируется в пути.
Так по Qt Creator, компилятор вызывается для обработки файла mainwindow.cpp и этот файл был передан ему
g++ /*truncated*/ ..\qt-example\mainwindow.cpp
Ниже приводится полный входной составитель:
g++ -c -pipe -fno-keep-inline-dllexport -g -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_OPENGL_ES_2 -DQT_OPENGL_ES_2_ANGLE -DQT_NEEDS_QMAIN -I..\qt-example -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include" -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include\QtWidgets" -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include\QtGui" -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\include\QtCore" -I"debug" -I"." -I"." -I"..\..\..\..\..\..\Qt\Qt5.0.1\5.0.1\mingw47_32\mkspecs\win32-g++" -o debug\mainwindow.o ..\qt-example\mainwindow.cpp
И ошибка производится.
g++.exe: error: ..qt-examplemainwindow.cpp: No such file or directory
g++.exe: fatal error: no input files
compilation terminated.
Таким образом, мы можем видеть, что компилятор игнорируется «\», и имя файла сливается с именем каталога.
Решение этой проблемы относится к используемым инструментам - MinGW (Минималистские порты GCC и Binutils). А также MSYS - набор утилит GNU, таких как bash, make, gawk и grep, позволяющий создавать приложения и программы, которые зависят от традиционно используемых инструментов UNIX. В нашем случае - g ++.
MSYS не поставляется с Qt5.0.1-mingw, а g ++ не использует его, но MSYS, доступный в вашей переменной среды PATH, разбивает систему.
MSYS is used для git scm, который я установил, поэтому мой путь содержит ссылки на MSYS, который поставляется в комплекте с git. Поэтому у меня есть следующие пути в переменной среды PATH.
C:\Program Files (x86)\git\bin;C:\Program Files (x86)\git\cmd
я не нашел, как MSYS используется Qt Creator или г ++, или там, где это связано, но когда я упал следующий путь от PATH:
C:\Program Files (x86)\git\bin;
и перезапустить Qt Creator - г ++ удалось скомпилировать мой файл, он сработал. Вопрос, почему/как он влияет на Qt Creator/g ++, который не должен использовать утилиты MSYS, установленные с git, по-прежнему открыт.
MSYS не требуется для MinGW (-w64) НКИ. Вы не должны добавлять 'msysgit/bin' в свой системный PATH. Удалите это и, скорее всего, вам удастся больше удачи после повторного запуска qmake. MSYSgit должен устанавливать ярлыки для git Bash, который работает без изменений PATH. Если вы хотите использовать основные команды git из cmd, сохраните '../ git/cmd' часть в PATH. – rubenvb
Правильно, MSYS не требуется, но вопрос в том, почему/как он разрывает g ++. Потому что это нарушает его. Я не добавил «sysgit/bin» специально - они добавляются во время установки молча. Как я уже сказал, оба git (в Console2) и qmake работают без них. Хорошая вещь, чтобы добавить '../git/cmd' в PATH, чтобы получить git, идущий от cmd. Я добавлю это к ответу. Спасибо. – pershyn
где вы получили свой msysgit? Каждый раз, когда я его устанавливаю, он предлагает выбор, чтобы добавить git/bin, git/cmd или ничего в PATH, с большим предупреждением о добавлении git/bin в PATH. – rubenvb