如何为MS ++ Makefile定义C ++程序的路径?

我的问题:在我在MSYS和MSYS2环境中使用的Makefile中,我知道一个路径PYTHON_ROOT_DIR,它应该在C ++程序的编译时使用。 问题是PYTHON_ROOT_DIR在Makefile中称为posix样式路径,例如/mingw64/bin ,其中在C ++程序中它应具有类似"C:\\prog64\\msys64\\mingw64\\bin" 。 另外的挑战是,根据配置变量PYTHONMAJOR,路径应为宽字符或普通字符。

我的问题:如何在Makefile中解决这个问题,而无需在msys或msys2环境中安装其他程序/脚本?

部分问题是在msys路径转换(或msys的cygpath?)中解决的 ,即如何将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。