#c #windows #qt #qmake
#c #Windows #qt #qmake
Вопрос:
У меня есть проект Qt (версия 5.14.2), который отлично работает под Linux. Теперь я хотел бы также предоставить его в Windows. Однако у меня возникли некоторые проблемы с его сборкой. Выдается следующая ошибка:
Error: Cannot find = after : in macro substitution.
А затем строка в makefile. Когда я перехожу к строке, появляется эта команда:
443 {C:UsersAlexDocumentsGitHubcontrol-stationsrcaircraft}.cpp{obj}.obj:: 444 $(CXX) -c $(CXXFLAGS) $(INCPATH) -Foobj @<< 445
lt;
446 <<
У меня нет предыдущего опыта работы с Windows, поэтому эта ошибка оставляет меня в неведении. Существует еще одна ошибка:Kit Desktop Qt 5.14.2 MSVC2017 64bit has configuration problems.
Похоже, что это последовательное из предыдущего, но я не уверен. У вас есть какие-либо предложения, что проверить? Кажется, это ошибка макроса, но я не знаю, с чего начать поиск?
Комментарии:
1. Недостаточно информации, чтобы дать полезный ответ. Используете ли вы QMake или CMake или просто Make (а затем какой вариант Make — windows или unix?). Нет информации о строке, касающейся местоположения в вашем исходном тексте, и мы не можем знать, как выглядит код, вызывающий эту ошибку.
2. @BitTickler Jeah извините, сложно предоставить достаточно информации, если вы понятия не имеете, что ее вызывает. Но я нашел проблему и ответил на нее здесь. В моем файле .pri использовалась оболочка Git, но она не была установлена должным образом.
Ответ №1:
Неважно, найдено решение. Проблема была скрыта где-то совсем в другом месте кода. Я использовал некоторые команды оболочки git:
exists ($PWD/.git) {
GIT_DESCRIBE = $(shell git --git-dir $PWD/.git --work-tree $PWD describe --always --tags)
GIT_BRANCH = $(shell git --git-dir $PWD/.git --work-tree $PWD rev-parse --abbrev-ref HEAD)
GIT_HASH = $(shell git --git-dir $PWD/.git --work-tree $PWD rev-parse --short HEAD)
GIT_TIME = $(shell git --git-dir $PWD/.git --work-tree $PWD show --oneline --format="%ci" -s HEAD)
Но у меня не была установлена оболочка git должным образом. Это каким-то образом распространилось на файл make и вызвало ошибку.