我正在运行适用于 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 或错误地传递参数,但我不知道为什么。
在尝试其他命令时,我注意到一些其他命令参数具有\r
错误指出的行内结尾。
问题是脚本有 Windows 行结尾,正如 steeldriver 在问题中评论的那样。
使用dos2unix
命令很容易修复,例如:
dos2unix script.sh
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句