2017-01-04 57 views
-1

因此,问题的核心是我想在Linux和Windows下使用我的Makefile。 当我使用普通的CFILES := $(shell find $(SDIR) -name '*.cpp')来查找我的.cpp文件时,Windows下的shell转义会调用一个忽略MSYS64/bin是在PATH中查找程序的第一个目录并使用Windows内部查找命令的环境,与unix find程序有很大不同。Makefile找到Windows中的所有* .cpp和* .h文件中断

所以我需要或者

一)找到一种方法,在Windows下厂名外壳逃逸确实使用“unixary”发现在我的路上发现

B)找到一种方法来找到所有文件没有外壳逃生...

+0

尝试'CFILES:= $(通配符$(SDIR)/ * CPP)'。但是这不会递归到子目录中。 –

+0

不幸的是,这是我需要的东西,因为项目不可管理其他 – salbeira

+0

您可以将文件添加到当前目录或路径上的另一个目录吗?你可以在'myfind.bat'和'myfind'前面调用'MSYS64 \ bin \ find.exe',后者只需调用'find'。 –

回答

0

如果你想要目录以及尝试下面并删除notdir函数。

YOUR_DIRECTORY =你\目录\凡\到\查找\ FILES

YOUR_DIRECTORY_FILES = $(notdir $(壳DIR/AD/B/S $(YOUR_DIRECTORY)*。CPP))

要验证

$ {信息文件$(YOUR_DIRECTORY_FILES)}

+0

听起来很有希望,但由于某些原因,dir的参数被解释为目录,而在终端输入命令时,我自己产生正确的结果 – salbeira

+0

只验证它指向的shell是否为sh.exe(使用$ {info $(SHELL) ),如果不是那么在路径变量下移动当前shell(作为输出获取)的目录并重新启动命令提示符。 这是测试,它最近为我工作 –