【问题标题】:Error when compiling llvm in FreeBSD 8.4在 FreeBSD 8.4 中编译 llvm 时出错
【发布时间】:2016-06-21 22:03:32
【问题描述】:

我正在尝试在 FreeBSD 8.4 中从源代码构建 LLVM。 这是我执行的步骤

  1. http://llvm.org/releases/3.8.0/llvm-3.8.0.src.tar.xz下载源码
  2. 将源文件提取到一个文件夹中。
  3. 创建了一个构建目录并在其中运行 $ cmake ../llvm-3.8.0.src
  4. 使用 $cmake --build 开始构建。

它会抛出以下错误

/home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp: In member function 'llvm::tgtok::TokKind llvm::TGLexer::LexNumber()':
/home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp:393:48: error: 'strtoll' was not declared in this scope
       CurIntVal = strtoll(NumStart, nullptr, 16);
                                                ^
/home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp:398:60: error: 'strtoull' was not declared in this scope
         CurIntVal = (int64_t)strtoull(NumStart, nullptr, 16);
                                                            ^
/home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp:414:47: error: 'strtoll' was not declared in this scope
       CurIntVal = strtoll(NumStart, nullptr, 2);
                                               ^
/home/spangeni/llvm/llvm-3.8.0.src/lib/TableGen/TGLexer.cpp:429:44: error: 'strtoll' was not declared in this scope
   CurIntVal = strtoll(TokStart, nullptr, 10);

GCC 版本 = 4.9.2 CMAKE 版本 = 3.2.3

我还尝试在文件 llvm-3.8.0.src/lib/TableGen/TGLexer.cpp 中包含 stdlib.h。这没有帮助。

有没有我遗漏的配置?

【问题讨论】:

    标签: llvm freebsd llvm-clang llvm-3.0


    【解决方案1】:

    ports 系统的存在是有充分理由的 - 许多(几乎所有重要的)软件都需要补丁和构建调整才能正常构建和工作。所以我的建议就是:使用端口。

    但不确定端口是否真的支持 FreeBSD 8.4。你有什么特别的理由要使用这样的旧版本吗?

    【讨论】:

      猜你喜欢
      • 2014-12-21
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多