编译Blender BPY:用-fPIC重新编译?

时间:2016-04-21 20:29:45

标签: bash compiler-errors cmake blender

我尝试使用以下方法在Ubuntu 14.04.4中编译Blender BPY:

mkdir ~/blender-git
cd ~/blender-git
git clone http://git.blender.org/blender.git
cd blender
git submodule update --init --recursive
git submodule foreach git checkout master
git submodule foreach git pull --rebase origin master

sudo apt-get update; sudo apt-get install git build-essential

cd ~/blender-git
./blender/build_files/build_environment/install_deps.sh

sudo apt-get install cmake cmake-curses-gui

mkdir ~/blender-git/build
cd ~/blender-git/build

cmake ../blender \
    -DWITH_PYTHON_INSTALL=OFF \
    -DWITH_PLAYER=OFF \
    -DWITH_PYTHON_MODULE=ON

cd ~/blender-git/build
make

它会编译,但会以错误结束:

[100%] Building C object source/creator/CMakeFiles/blender.dir/buildinfo.c.o
Linking CXX shared module ../../bin/bpy.so
/usr/bin/ld.gold: error: /opt/lib/python-3.5/lib/libpython3.5m.a(abstract.o): requires dynamic R_X86_64_PC32 reloc against 'PyType_IsSubtype' which may overflow at runtime; recompile with -fPIC

我在页面中遇到同样的错误...

有什么想法吗?

是否可以在某处下载blender BPY的编译库?

谢谢!

1 个答案:

答案 0 :(得分:1)

好吧,它试图将一个静态库链接到一个动态库,而那个静态库(/opt/lib/python-3.5/lib/libpython3.5m.a)不适合那个(没有编译) -fPIC是什么让它无法在共享库中使用它。用标志重新编译该库(或者只是提供一个正确编译的库)并重新尝试使用Blender BPY。

我刚刚检查过,Ubuntu-14.04在官方回购中没有python-3.5,但是有一堆专用的PPA。但是因为它是16月4月底,所以最好将你的apt sources.list切换到Xenial并将系统更新到下一个LTS,如果你觉得勇敢,或者只是python如果你不这样做:)