在Fedora 20上构建Blender,由于LLVM / Clang(不匹配)问题导致OSL编译失败

时间:2014-06-20 12:48:50

标签: clang llvm blender

从git获取当前的Blender master并运行./blender/build_files/build_environment/install_deps.sh在我的Fedora 20系统上工作正常,直到Open Shading语言编译出现,失败并出现以下错误:

/opt/lib/llvm-3.3/bin/llvm-as: /home/simonrepp/src/blender-deps/OpenShadingLanguage-1.4.0/build/src/liboslexec/llvm_ops.s:112:59: error: invalid use of function-only attribute
define void @osl_sin_dfdf(i8* nocapture %r, i8* nocapture readonly %a) #2 {

调查让我this,建议安装程序设置的本地llvm (3.3)版本与全局安装的clang (3.4)之间存在版本不匹配。所以我试着明确地告诉安装人员llvm 3.4 - /blender/build_files/build_environment/install_deps.sh --ver-llvm=3.4 - 这次带领我去了另一个错误:

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
LLVM_MCJIT_LIBRARY
    linked by target "oslexec" in directory /home/simonrepp/src/blender-deps/OpenShadingLanguage-1.4.0/src/liboslexec 

我无法解释这个问题,既没有自己设计一个有效的解决方案,所以我采用了另一种方法,降级和版本锁定全局llvmclang包到3.3,这次告诉安装程序明确地使用llvm (3.3) - /blender/build_files/build_environment/install_deps.sh --ver-llvm=3.3 - 这次导致安装程序因为无法将版本锁定的软件包升级到{而导致中止{1}} ......唉。

所以现在我或多或少地陷入困境,寻找一个开箱即用的解决方案,或者是那些了解3.4内容以及如何解决这个问题的人?

1 个答案:

答案 0 :(得分:1)

更新:同时修复了依赖安装程序脚本中此处描述的错误(https://developer.blender.org/rBf3f991c80fa92ccb7a831b8e8449ff5f21065a9d):)

好的,所以我尝试删除系统上全局安装的llvmclang软件包并再次运行安装程序,导致由于任何 {不可用而导致失败{1}},引起了我的注意,就像在安装程序控制台乱码中所说的那样clang,所以CLANG在哪里?我发现安装程序在编译之前下载的.tar.gz(LLVM (CLANG included!))为空 - 0字节 - 并且挖掘src/blender-deps/CLANG-3.3.tar.gz显示install_deps.sh,转换为{{3} }指的是不正确的下载URL。

CLANG 3.3源的正确URL是http://llvm.org/releases/3.3/clang-3.3.src.tar.gz,因此我手动下载它,将其重命名为并替换LLVM_CLANG_SOURCE="http://llvm.org/releases/$LLVM_VERSION/clang-$LLVM_VERSION.src.tar.gz",然后在安装程序的另一次失败运行后也进入了tarball并重命名从src/blender-deps/CLANG-3.3.tar.gzcfe-3.3.src的文件夹......从那里开始:成功!

构建这样的源代码并且没有全局安装的兼容clang-3.3.src的每个人都应该面对这个问题(因为下载URL也会被其他人破坏),我有点惊讶我没有&# 39;在此找到其他任何东西。好吧。案件结案。