我的文档的无空白路径
Posted
技术标签:
【中文标题】我的文档的无空白路径【英文标题】:white space free path to My Documents 【发布时间】:2010-08-17 21:53:27 【问题描述】:在使用 GNU 工具链构建 C++ 项目时,make 告诉我~
src/Adapter_FS5HyDE.d:1: *** 多个目标模式。停下来。
搜索,搜索,搜索,我发现make
认为它有多个目标,因为我包含的标题的路径中有空格。如果您将标头存储在诸如C:\Program Files
之类的正常 位置,那么您可以使用旧的DOS 路径(例如C:\PROGRA~1
)来处理这个问题。但是,当您将标题放在像My Documents
这样真正疯狂的地方时,您可以使用MY DOC~1
解决问题,因为仍然有空间。
知道如何告诉我的编译器在“我的文档”中查找标题而不会将 make
混淆为两个对象的路径吗?
(注意:如果您愿意,请随意向我扔西红柿,因为我将头文件放在“我的文档”中,但是 这样做有一点理由,我不想解释.如果这个问题的解决方案很简单,我宁愿保持原样。)
【问题讨论】:
缩短的名称通常没有空格。您确定MY DOC~1
真的是您的My Documents
文件夹的简称吗?
我的“我的文档”文件夹有一个短别名“MYDOCU~1”。我同意查尔斯·贝利(Charles Bailey)的观点——长文件名的 8.3 短别名包含空格是不寻常的。如果它们包含的空间将挫败微软提出该组合的原因。您的系统发生了一些奇怪的事情。
您能否转到“我的文档”目录的父目录,执行“dir /x”命令并将输出(至少相关行)粘贴到您的问题中?
【参考方案1】:
您可以通过在命令提示符中执行DIR /X
来确定旧路径是什么。
或者,大多数时候你可以用前 6 个字符来伪造它 - 空格 + ~1
+ 扩展名(8.3 路径不会有空格)。
或者,您可以使用引号:"C:\Documents and Settings\Administrator\My Documents"
。
【讨论】:
【参考方案2】:我不知道 make 具体是什么,但解决这个问题的正常方法是在路径周围加上引号,即
cd "C:\Program Files\"
这行得通吗?
【讨论】:
它不在 Makefile 目标和依赖项中。【参考方案3】:旁注:同一文件夹的短名称 (8.3) 在不同的操作系统安装上可能不同。因此,您无法确定C:\Program Files
将始终为C:\PROGRA~1
。
My Documents
的常用短名称是MYDOCU~1
,而不是MY DOC~1
。
您可以使用dir /x <filename>
找到任何文件夹或文件(包括My Documents
)的确切短名称。
如果您从 Windows 命令行 (cmd.exe
) 使用 GNU 工具链,您应该能够在文件夹/文件名周围使用引号 ("
) 来解决此问题。
【讨论】:
【参考方案4】:对于某些文件夹,包括我的文档,您可以指定一个替代位置。为此,请右键单击该文件夹,选择“属性”,选择“位置”选项卡,然后离开。我用它把我的下载和音乐放在另一个驱动器上 (D:)。
【讨论】:
【参考方案5】:编写一个包装脚本(例如批处理文件)将路径名转换为短格式。
我有一个脚本“runwin”,它可以做这样的事情——而不是,例如。 gcc <args>
我可以打电话给runwin gcc <args>
;
runwin 将启发式猜测哪些参数是文件名路径并翻译它们,然后在结果的参数字符串上调用 gcc。
【讨论】:
以上是关于我的文档的无空白路径的主要内容,如果未能解决你的问题,请参考以下文章