2013-06-17 2 views
2

Я использую ruby ​​1.9.3p392 через rbenv под Debian 7, и я пытаюсь установить gtbindings gem, чтобы я мог запустить старое приложение ruby, которое использует qt libs.ruby ​​compile with fPIC

Здесь ошибка я получаю при вводе «Gem установить 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%] 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 

Как компилировать рубин с ППИЦ? Я также пробовал «gem install qtbindings -fpIC», но получил ту же ошибку.

ответ

3

Попробуйте

#gem install qtbindings -- --with-cflags=\"-fPIC\" 

Источник: Is there any way to change gcc compilation options for a gem?

Отредактировано:

Да, дал еще один взгляд на ваш код, по моей вине. Проблема заключается в установленном рубине, а не в драгоценном камне.

Посмотрите на this (Последнее сообщение)

Попробуйте переустановить рубин с разделяемыми библиотеками:

CONFIGURE_OPTS="--enable-shared" rbenv install 1.9.3-p392 
+0

Я все еще получаю ту же проблему при запуске этого. – map7

+0

Отредактировал свой ответ. Я уверен, что решит вашу проблему. – Trompa

+0

Протестировано под 1.9.3-p429, и это сработало. – map7