【问题标题】:CYGWIN Ms-Dos path detected warningCYGWIN Ms-Dos 路径检测到警告
【发布时间】:2026-01-03 06:25:01
【问题描述】:

我使用的是 Windows,我的桌面上有一个 c 文件。它包括 unix 代码。当我在 cygwin 终端上写“gcc -o MyExe C:/Users/Username/Desktop/ccode.c”时,它会发出类似“检测到 MS-DOS 路径”的警告。应该怎么写?

【问题讨论】:

    标签: c windows unix cygwin


    【解决方案1】:

    Cygwin 将 Windows 风格的路径重新映射为与 UNIX 兼容的格式,使用 / 而不是 \ 作为目录分隔符(尽管 Windows 也接受 /),并将所有驱动器号放入名为/cygdrive.

    改变这个:

    gcc -o MyExe C:/Users/Username/Desktop/ccode.c
    

    到这里:

    gcc -o MyExe /cygdrive/C/Users/Username/Desktop/ccode.c
    

    Cygwin 还为您提供了一个 UNIX 风格的主目录。对于典型的 Cygwin 安装,该目录将位于从 Windows 中看到的 C:\cygwin\home\username,或者从 Cygwin 中看到的 /home/username(在 /cygdrive/cygwin/C/home/username 中也可见)。与实际的 UNIX/Linux 系统一样,在许多情况下,您可以将主目录称为 $HOME~。它通常与您的 Windows 主目录 C:\Users\username 不同。我通常忽略 Windows 主目录,只使用我的 Cygwin 主目录。但是,如果您愿意,当然可以使用 Cygwin 中的 Windows 主目录;引用它会有点困难(并且某些文件必须在您的 Cygwin 主目录中。)

    可能可以将 Cygwin 配置为使用您的 Windows 主目录作为 Cygwin 主目录;我自己没试过,可能会出问题。

    【讨论】:

    • 我试过了,但出现“没有这样的文件或目录”错误
    • @TamerMemili:嗯。我认为 Windows 使用特殊目录(如 Desktop)做了一些有趣的事情。如果你打开一个 Windows 命令提示符,你能看到C:\Users\Username\Desktop\ccode.c 的文件吗?
    • 我刚刚看到您对 unix 风格的主目录的评论。我将我的 c 文件复制到该目录,我尝试以 unix 样式访问它,例如 gcc -o Myexe /home/username/ccode.c 但仍然是同样的错误,没有这样的文件或目录。 © 不要安装 cygwin 的所有功能,只安装有关 gcc 的功能。这是个问题吗?
    • @TamerMemili:在 Windows 命令提示符下,你看到C:\cygwin\home\username\ccode.c 的文件了吗?
    • 我试过了,不行,我看不到那个文件,我该怎么办?