我在Windows中玩Qt项目。实际上我也准备在Linux上构建它。问题是build.sh脚本(下面)在进程中的某个地方每行(*)膨胀1个字节,这使得它在最终用户执行时失败。
*我将开发者机器的大小与最终用户机器的大小进行比较。在这些之间,Jenkins(在Windows上运行)从git服务器获取东西并打包一个tar.gz文件(使用cygwin),最终用户终究获得了该文件。
#!/bin/bash
qmake Project.pro
make
make clean
我该如何处理这个问题?
我可以提供更多信息吗?
答案 0 :(得分:1)
对我而言,看起来像Jents在Windows上使用的git已经启用了crlf转换 - 它将需要Linux行结尾 \ n 并将它们转换为 \ n \ r 。您经常看到的症状是
/ bin / bash ^ M:错误的解释器:没有这样的文件或目录
你应该设置core.autocrlf = input,或者至少阻止脚本,二进制文件,档案等的自动转换......
有关详情,请参阅此处:https://help.github.com/articles/dealing-with-line-endings/#platform-all。我知道它建议在Windows上使用core.autocrlf = true,但实际上你在Windows上使用Cygwin,并且你正在为Cygwin打包脚本,所以你可能想要core.autocrlf = input(没有转换)。