Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ gnu在目录名vpath中生成空格_C++_C_Makefile_Gnu - Fatal编程技术网

C++ gnu在目录名vpath中生成空格

C++ gnu在目录名vpath中生成空格,c++,c,makefile,gnu,C++,C,Makefile,Gnu,我们一直试图创建包含空格字符的VPATH或VPATH搜索目录,但未成功 我的makefile包含: vpath %cpp RTW/ModelRTW RTW/StandardTests RTW/TestFramework RTW/TestFromFile ../../../CommonCode ../04_Model/DLib/ ../04 Model/ELib/ make-p返回: . . vpath %cpp RTW/ModelRTW:RTW/StandardTests:RTW/TestFr

我们一直试图创建包含空格字符的
VPATH
VPATH
搜索目录,但未成功

我的makefile包含:

vpath %cpp RTW/ModelRTW RTW/StandardTests RTW/TestFramework RTW/TestFromFile ../../../CommonCode ../04_Model/DLib/ ../04 Model/ELib/
make-p
返回:

.
.
vpath %cpp RTW/ModelRTW:RTW/StandardTests:RTW/TestFramework:RTW/TestFromFile:../../../CommonCode:../04_Model/DLib
我试着引用、逃避“\”和其他几个化身,但都没有用

任何帮助都会被极大地接受

Ed

不幸的是,这是一个错误,自2002年被报道以来,人们已经关注了好几次

GNU make不处理名称中的空格,而且从来没有

如果你真的试图修补它,你将面临严峻的挑战,因为大量的项目依赖它。那些需要空白支持的人会转向更高级的构建系统。几十年来,出现了许多构建脚本工具,但make仍然存在,尽管存在许多主要问题。制表符和空格的格式已经困扰了开发者将近40年


源代码可用,如果需要,可以尝试修补。大多数试图放弃或创建另一个构建脚本系统的开发人员最终都会放弃或创建另一个构建脚本系统。

最好的方法是编写一个m脚本,将文件复制到构建目录,其中path没有空间。
如果您使用Simulink,那么m脚本将在“before_make”钩子处调用。

我可以找到几年前的评论,说它不受支持。很可能情况仍然如此。你能实现你的makefile而不需要vpath吗?Make文档明确地说,
vpath
空间被认为是路径分隔符,似乎没有任何改变这种行为的方法(也许创建一个自定义区域设置来更改
isspace
的行为可能会起作用,但它可能会破坏其他一切)。您无法为包含空格的路径编写makefiles。vpath只是非常大的冰山一角。包含空格的路径对于所有不同类型的工具来说都很难使用,而不仅仅是make。最好避免使用它们。GNU make从3.82版起就支持替代配方介绍字符(而不是TAB)(2010年发布)。添加一些说明。