Указание пути в makefile (GNU make на Windows)

#path #makefile

#путь #makefile

Вопрос:

Я использую GNU make для создания проекта с использованием Microsoft Visual C , и я хотел бы иметь возможность запускать его из любого окна CMD вместо того, чтобы открывать предварительно настроенное, где путь (и различные другие переменные среды) предварительно настраиваются с помощью пакетного файла. В идеале я хотел бы определить соответствующие переменные среды в самом makefile, поэтому все, что мне нужно сделать, это открыть окно CMD и ввести «make».

В общем и целом это просто, но я испытываю трудности с PATH; до сих пор каждый синтаксис, который я пробовал для использования стандартной переменной PATH (как определено в операционной системе) и добавления путей к различным инструментам сборки, не удался.

Вместо того, чтобы перебирать шесть или семь различных синтаксисов, которые я пробовал — некоторые из которых выдавали сообщения об ошибках, некоторые из которых не выдавали сообщений об ошибках, а просто не работали, — я задам вопрос прямо:

  • Какую строку я должен вставить в свой makefile, чтобы путь к link.exe, а именно «C:Program Файлы (x86) Microsoft Visual Studio 9.0VC bin», будут добавлены к пути, используемому «make»?

До сих пор самым близким к успеху было определение:

ССЫЛКА = «C:Program Файлы (x86) Microsoft Visual Studio 9.0VCbinlink.exe «

…и замените все последующие ссылки на «link.exe » с помощью $ (ССЫЛКА), но это не удается, потому что link.exe имеет различные зависимости (такие как mspdb80.dll ) которые также должны быть в пути.

Ответ №1:

Это работает:

 DevEnvDir=C:Program Files (x86)Microsoft Visual Studio 9.0Common7IDE
VCINSTALLDIR=C:Program Files (x86)Microsoft Visual Studio 9.0VCbin

export Path:=$(DevEnvDir);$(VCINSTALLDIR);$(Path)
  

Раньше меня подводила необходимость «экспорта» и учета регистра.

Комментарии:

1. В моем случае (make.exe v.3.8.1 от gnuwin32.sourceforge.net/packages/binutils.htm ) Мне пришлось переключиться на прописной — PATH, с Path это не сработало.

2. У меня был тот же опыт, что и у @ZinovyNis.