我的文档的无空白路径

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。

【讨论】:

以上是关于我的文档的无空白路径的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的EXCEL文件第一次打开是空白文档,第二次才能打开?

如何在扫描的文档图像上找到空白字段

jsPDF输出空白文档

保存的 Word 文档打开为空白文档(已解决)

您如何获得“我的文档”的确切路径?

如何选择“我的文档”路径来保存文件