我正在运行适用于 Linux 的 Windows 子系统的 Ubuntu 版本。在其中,我设置了一个简单的 cmake 项目,并创建了一个脚本,这样我就不用输入
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ../../
每次我想构建时。我的 CMakeLists.txt 存在于上述两个目录中(因此../../
)。如果我手动输入上述命令或使用以下命令运行 powershell 脚本,构建工作正常精确的相同的命令,仅此而已。
但是在 WSL 中运行这个 bash 脚本
#!/bin/bash
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug ../../
我收到错误" does not exist.source directory "/mnt/c/dev-files/C/Practice/
。
看起来 bash 脚本搞乱了 cmake 的错误输出,所以我猜测脚本正在执行 cmake 或错误地传递了参数,但我不知道原因。
答案1
当尝试其他命令时,我注意到一些其他命令参数的\r
行尾结尾有错误指出。
问题在于脚本有 Windows 行尾,正如 steeldriver 在问题中所评论的那样。
使用以下命令即可轻松修复dos2unix
,例如:
dos2unix script.sh