从 WSL 中的 bash 脚本运行时 CMake 找不到源目录

从 WSL 中的 bash 脚本运行时 CMake 找不到源目录

我正在运行适用于 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

相关内容