Как определить путь из файла MSYS Makefile для программы на С++?
Моя проблема: в Makefile, который я использую как в MSYS, так и в среде MSYS2, я знаю путь PYTHON_ROOT_DIR, который будет использоваться во время компиляции в программе на С++. Проблема заключается в том, что PYTHON_ROOT_DIR находится в файле Makefile, известном как стиль стиля posix, например /mingw64/bin
, где в программе на С++ он должен иметь форму типа "C:\\prog64\\msys64\\mingw64\\bin"
. Дополнительная проблема заключается в том, что в зависимости от переменной конфигурации PYTHONMAJOR путь должен быть широкими или нормальными.
Мой вопрос: как мне решить это в Makefile без необходимости установки дополнительных программ/скриптов в средах msys или msys2?
Ответы
Ответ 1
Часть вопроса адресуется в пути преобразования путей (или cygpath для msys?), а именно, как преобразовать путь стиля msys в путь стиля Windows. Мое полное решение в Makefile:
ifeq ($(PYTHONMAJOR),3)
L=L
endif
DEFINES += -DPYTHON_ROOT_DIR=$(L)'"'$(shell (cmd //c echo $(PYTHON_ROOT_DIR)) | sed 's|/|\\\\\\\\|g')'"'
который определяет символ препроцессора PYTHON_ROOT_DIR с правильным путем.