用fPIC实现ruby编译
我在Debian 7下通过rbenv使用ruby 1.9.3p392,我正在尝试安装qtbindings gem,以便运行一个使用qt libs的旧ruby应用程序 以下是我在键入“gem install qtbindings”时遇到的错误用fPIC实现ruby编译,ruby,qt,rbenv,Ruby,Qt,Rbenv,我在Debian 7下通过rbenv使用ruby 1.9.3p392,我正在尝试安装qtbindings gem,以便运行一个使用qt libs的旧ruby应用程序 以下是我在键入“gem install qtbindings”时遇到的错误 make[3]: Entering directory `/usr/local/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/qtbindings-4.8.3.0/ext/build' [ 82%] B
make[3]: Entering directory `/usr/local/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/qtbindings-4.8.3.0/ext/build'
[ 82%] Building CXX object ruby/qtruby/src/CMakeFiles/qtruby4shared.dir/Qt.o
[ 82%] Building CXX object ruby/qtruby/src/CMakeFiles/qtruby4shared.dir/handlers.o
[ 83%] Building CXX object ruby/qtruby/src/CMakeFiles/qtruby4shared.dir/marshall_types.o
Linking CXX shared library libqtruby4shared.so
/usr/bin/ld: /usr/local/rbenv/versions/1.9.3-p392/lib/libruby-static.a(array.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/local/rbenv/versions/1.9.3-p392/lib/libruby-static.a: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make[3]: *** [ruby/qtruby/src/libqtruby4shared.so.2.0.0] Error 1
make[3]: Leaving directory `/usr/local/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/qtbindings-4.8.3.0/ext/build'
make[2]: *** [ruby/qtruby/src/CMakeFiles/qtruby4shared.dir/all] Error 2
make[2]: Leaving directory `/usr/local/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/qtbindings-4.8.3.0/ext/build'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/local/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/qtbindings-4.8.3.0/ext/build'
make: *** [build] Error 2
Gem files will remain installed in /usr/local/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/qtbindings-4.8.3.0 for inspection.
Results logged to /usr/local/rbenv/versions/1.9.3-p392/lib/ruby/gems/1.9.1/gems/qtbindings-4.8.3.0/./gem_make.out
我已经安装了以下要求
sudo aptitude install cmake build-essential bison openssl libreadline5 libreadline-dev curl git-core zlib1g zlib1g-dev libssl-dev vim libsqlite3-0 libsqlite3-dev sqlite3 libreadline5-dev libreadline6-dev libxml2-dev git-core subversion autoconf xorg-dev libgl1-mesa-dev libglu1-mesa-dev qtcreator
如何使用fPIC编译ruby?
我也尝试过“gem安装qtbindings--fPIC”,但遇到了相同的错误。试试看
#gem install qtbindings -- --with-cflags=\"-fPIC\"
资料来源:
编辑:
是的,再看看你的代码,是我的错。问题在于安装的ruby,而不是gem
看(最后一篇文章)
尝试使用共享库重新安装ruby:
CONFIGURE_OPTS="--enable-shared" rbenv install 1.9.3-p392
我在做这件事的时候还是遇到了同样的问题。我是想让我的孩子们和KidsRuby在一起。你的回答看来能救我的命。谢谢。