Ошибка при компиляции llvm во FreeBSD 8.4
Я пытаюсь собрать LLVM из исходного кода во FreeBSD 8.4. Вот шаги, которые я выполнил
- Скачал источник с http://llvm.org/releases/3.8.0/llvm-3.8.0.src.tar.xz
- Извлек источник в папку.
- Создал каталог сборки и внутри него запустил $ cmake ../llvm-3.8.0.src
- Начал сборку используя $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
Я также попытался включить stdlib.h в файл llvm-3.8.0.src/lib/TableGen/TGLexer.cpp. Это не поможет.
Есть ли какая-то конфигурация, которую мне не хватает?
1 ответ
Система портов существует по уважительной причине - многие (в значительной степени все нетривиальные) программы нуждаются в исправлениях и настройках для правильной сборки и работы. Так что мой совет был бы таков: используйте порты.
Не уверен, что порты действительно поддерживают FreeBSD 8.4. Есть ли у вас особая причина использовать такой старый релиз?