Как изменить переменную PATH в файле проекта Qt Creator (.pro)

Я использую Qt Creator 3.4.2 для Windows и компилятор MSVC2013. Когда я строю проект, я получаю сообщение об ошибке:

LNK1158: cannot run 'rc.exe'

Мне удалось это исправить, добавив

"C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Bin"

к переменной PATH под

Projects -> Build Environment

Но мне нужно изменить переменную PATH, отредактировав файл.pro. Это облегчит открытие и сборку моего проекта на другом компьютере, поскольку все пути будут храниться в файле.pro. Это решение не работает:

PATH += "C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Bin"

Это вообще возможно?

1 ответ

Решение

Странно, что у вас есть такая ошибка, поскольку Qt Creator должен обнаруживать компиляторы MSVC и собирать проект в соответствующей среде. Qt Creator знает, что он должен запустить требуемый командный файл, например, для подготовки среды консоли командной строки VS C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat x86


Во всяком случае, можно написать qmake файл проекта (.pro), который создает файлы Makefile, запускающие любую пользовательскую команду оболочки перед фактической компиляцией проекта. когда qmake процессы .pro файл это только создает Makefiles. Затем компиляция выполняется другим инструментом make build. Qt Creator использует его jom сделать утилиту. С консоли VS можно запустить nmake,

Утилита make запускает различные инструменты в соответствии с правилами Makefiles. Можно создать дополнительную фальшивую цель с помощью команды build, которая устанавливает PATH переменная. Основная цель должна зависеть от этой цели.

Следующие строки в .pro В файле создайте такие правила:

QMAKE_EXTRA_TARGETS += customtarget1

customtarget1.target = dummy
customtarget1.commands = set PATH=C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Bin;$(PATH)

PRE_TARGETDEPS += dummy

Итак, во время обработки Makefiles первая цель dummy, Наборы команд "build" PATH, Затем все остальные инструменты запускаются в этой среде.

Другие вопросы по тегам