2014-06-20 56 views
0

从git获取当前Blender主体并运行./blender/build_files/build_environment/install_deps.sh在我的Fedora 20系统上正常工作,直到打开底纹语言编译出现为止,错误:在Fedora 20上构建混合器,由于LLVM/Clang(不匹配)问题而导致OSL编译失败

/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--这次导致安装程序由于无法安装而中止将版本锁定的软件包升级到3.4 ... Argh。

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

+1

clang必须与llvm相同或更新。就我个人而言,我还没有运用llvm3.4构建OSL。在osl build dir中运行ccmake(或cmake-gui),并检查LLVM_CONFIG是否设置为llvm3.3安装的llvm-config。尝试手动将LLVM_MCJIT_LIBRARY设置为libLLVMMCJIT.a的完整路径 - 它应该与其他llvm库一起使用。 – sambler

回答

1

UPDATE:在依赖安装脚本在此描述的错误已被固定的同时(https://developer.blender.org/rBf3f991c80fa92ccb7a831b8e8449ff5f21065a9d):)

行,所以我试图删除全局安装在我的系统上llvmclang包和运行安装程序再次,导致失败,由于任何clang,这引起了我的注意,因为在安装程序控制台乱码它说某处LLVM (CLANG included!),所以CLANG在哪里?我发现安装程序在编译(src/blender-deps/CLANG-3.3.tar.gz)之前下载的.tar.gz为空 - 0字节 - 并且挖掘到install_deps.sh,发现LLVM_CLANG_SOURCE="http://llvm.org/releases/$LLVM_VERSION/clang-$LLVM_VERSION.src.tar.gz"(转换为http://llvm.org/releases/3.3/clang-3.3.src.tar.gz)指的是不正确的下载URL。

为CLANG 3.3源正确的URL是http://llvm.org/releases/3.3/cfe-3.3.src.tar.gz,所以我手动下载了它,它重命名为和更换src/blender-deps/CLANG-3.3.tar.gz,安装程序的另一个失败运行后也去了压缩包,并更名文件夹里面的从cfe-3.3.srcclang-3.3.src ...从那里开始:成功!

每个构建这样的源代码的人,如果没有全局安装的兼容clang,应该会面临这个问题(因为下载URL也被其他人破坏),我有点惊讶我没有找到任何东西其他的在这。好吧。案件结案。

+0

中级坏消息:虽然这允许我构建Blender,但我发现即使是完全清理,也可以在应用程序启动时构建段错误。需要调查是否现在连接到这个“解决方案”... –

+1

中间坏消息与这里描述的原始问题没有关系,而是与libyaml有关的问题(请参阅https://developer.blender.org/T38370上的讨论),我也可以解决这个问题。 –

相关问题