在 cygwin 上使用 cmake 从 llvm 项目源编译 config.guess 时出现的问题

在 cygwin 上使用 cmake 从 llvm 项目源编译 config.guess 时出现的问题

似乎我的编译器不适应该文件的语法config.guess,并且不断出错。我下载源代码的 URL 是llvm 项目或者更具体地说有问题的源文件,svn 命令svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm

\r 似乎意味着换行

我也遇到了一些空白行的问题,然后只需注释它们就可以解决,但第 71 行的问题仍然存在。似乎该行有一个位置参数未被编译:$1

/home/computador/gsrc/independent/llvm/cmake/config.guess:代码 71:下一个单词的语法错误,原因是未正确理解$'in\r'' /home/computador/gsrc/independent/llvm/cmake/config.guess: linha 71: case $1 'n CMake 错误位于 cmake/modules/GetHostTriple.cmake:27(消息):无法执行 /home/computador/gsrc/independent/llvm/cmake/config.guess 调用堆栈(最近调用优先):cmake/config-ix.cmake:380(get_host_triple)CMakeLists.txt:611(包括)

-- 配置不完整,发生错误!另请参阅“/home/computador/gsrc/independent/llvm_build/build/CMakeFiles/CMakeOutput.log”。另请参阅“/home/computador/gsrc/independent/llvm_build/build/CMakeFiles/CMakeError.log”。

我遇到问题的块:

while test $# -gt 0 ; do
case $1 in
--time-stamp | --time* | -t )
   echo "$timestamp" ; exit ;;
--version | -v )
   echo "$version" ; exit ;;
--help | --h* | -h )
   echo "$usage"; exit ;;
-- )     # Stop option processing
   shift; break ;;
- ) # Use stdin as input.
   break ;;
-* )
   echo "$me: invalid option $1$help" >&2
   exit 1 ;;
* )
   break ;;
esac
done

我该如何编辑此代码,以便可以在我的机器上编译它?我的 cmake 生成器是 unix makefiles

答案1

我遇到了同样的问题,结果发现这是由于 config.guess 文件中的一些 DOS 行结尾造成的。

我通过用 unix 行尾替换它们来解决这个问题:

dos2unix path/to/config.guess

答案2

从 git 获取代码解决了这个问题,他们在那里有最后的修订,实际上他们说从 svn 下载已被弃用入门文档。我还按照安装 clang并在源文件夹中创建了 build 文件夹。现在编译时没有错误。我从一个非官方页面获得了信息,但不知道他们正在向 git 迁移

相关内容