白色空间免费路径到我的文档

时间:2010-08-17 21:53:27

标签: c++ makefile gnu

在使用GNU工具链构建C ++项目时,make告诉我〜

  

src / Adapter_FS5HyDE.d:1:***多个目标模式。停止。

搜索,搜索,搜索,我发现make 认为它有多个目标,因为我所包含的标题的路径中包含空格。如果您已将标头存储在C:\Program Files之类的 sane 位置,则可以使用旧的DOS路径(例如C:\PROGRA~1)来处理此问题。但是,当您将标题放在像My Documents这样真正疯狂的地方时,您可以通过MY DOC~1解决问题,因为还有空格。

知道如何告诉我的编译器在My Documents中查找没有make标题的标题会将路径混为两个对象吗?

(注意:如果您愿意的话,请随意向我扔西红柿,以便将头文件放入我的文档中,但是 有一些理由来做这些我不想解释如果这个问题的解决方案很容易,我宁愿保持原样。)

5 个答案:

答案 0 :(得分:3)

您可以在命令提示符中执行DIR /X,找出旧路径。

或者,大多数时候你可以用前6个字符伪造它 - 空格+ ~1 +扩展名(8.3路径没有空格)。

或者,您可以使用引号:"C:\Documents and Settings\Administrator\My Documents"

答案 1 :(得分:1)

我不知道具体是什么,但通常的方法是在路径上加上引号,即

cd "C:\Program Files\"

有效吗?

答案 2 :(得分:0)

旁注:在不同的操作系统安装中,同一文件夹的短名称(8.3)可能不同。因此,您无法确定C:\Program Files始终是C:\PROGRA~1

  • 短名称也不能在其中包含空格,因此My Documents的通常短名称为MYDOCU~1,而不是MY DOC~1
  • 您可以使用My Documents找到任何文件夹或文件(包括dir /x <filename>)的确切短名称。
  • 如果您使用Windows命令行(cmd.exe)中的GNU工具链,则应该能够在文件夹/文件名周围使用引号(")来解决此问题。

答案 3 :(得分:0)

对于某些文件夹,包括“我的文档”,您可以指定其他位置。要执行此操作,请右键单击该文件夹,选择“属性”,选择“位置”选项卡,然后离开。我使用它将我的下载和音乐放在另一个驱动器上(D :)。

答案 4 :(得分:0)

编写包装器脚本(例如,批处理文件)以将路径名转换为简短形式。

我有一个脚本“runwin”可以做这样的事情 - 而不是像gcc <args>我可以致电runwin gcc <args>; runwin将对哪些参数是文件名路径进行启发式猜测并翻译它们,然后在生成的参数字符串上调用gcc。