"brew install rtorrent" ahora no se puede compilar

0

Esta mañana, intenté lanzar rtorrent en Mac OS X 10.10.3, y falló con un "símbolo no encontrado" en libtorrent (perdí el rastreo de mi pantalla).

Probé un montón de cosas, como se documenta a continuación, pero no tuve suerte en hacer que se construyera.

He visto ese error antes y, según recuerdo, requiere la reconstrucción de libtorrent , así que hice

brew uninstall rtorrent libtorrent
brew install libtorrent
brew install rtorrent

Este último ahora falla debido a un error en make . El uso de brew install -vd rtorrent muestra lo siguiente:

libtool: link: g++-5 -g -O2 -DNDEBUG -D_THREAD_SAFE -I/usr/local/Cellar/libtorrent/0.13.4/include -o rtorrent main.o -Wl,-bind_at_load  libsub_root.a ui/libsub_ui.a core/libsub_core.a display/libsub_display.a input/libsub_input.a rpc/libsub_rpc.a utils/libsub_utils.a -lncurses -lcurl -L/usr/local/Cellar/libtorrent/0.13.4/lib -ltorrent
Undefined symbols for architecture x86_64:
  "std::__basic_file<char>::is_open() const", referenced from:
      rpc::parse_command_file(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) in libsub_rpc.a(parse_commands.o)
[...]

y así sucesivamente para muchas páginas. ¿Entonces parece ser un fallo del enlazador?

En Brew Install Rtorrent no funciona , parece que el problema es con gcc 5.0.1. Intenté seguir las instrucciones allí (bajar a gcc 4.9.2):

brew switch gcc 4.9.2

Eso funciona, pero entonces brew install rtorrent falla aún más espectacularmente:

checking for Cppunit - version >= 1.9.6... no
checking whether the C++ compiler works... no
configure: error: in '/private/tmp/rtorrent20150526-82101-c1xxo5/rtorrent-0.9.4':
configure: error: C++ compiler cannot create executables
See 'config.log' for more details

Busco en config.log , y el problema está aquí:

configure:3319: checking whether the C++ compiler works
configure:3341: g++-4.9    conftest.cpp  >&5
dyld: Library not loaded: /usr/local/lib/libisl.10.dylib
  Referenced from: /usr/local/Cellar/gcc/4.9.2/libexec/gcc/x86_64-apple-darwin14.0.0/4.9.2/cc1plus
  Reason: image not found
g++-4.9: internal compiler error: Trace/BPT trap: 5 (program cc1plus)
./configure: line 3343: 82310 Abort trap: 6           $CXX $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5

Eso no es bueno. Me pregunto dónde podría haber llegado libisl10.dylib ?

    
pregunta Jimmy Markle 26.05.2015 - 16:56

1 respuesta

1

Oh, logré lograr que esto funcione. Pensé que respondería a mi propia pregunta. La clave fue crear un enlace simbólico para el libisl.10.dylib faltante para que gcc 4.9.2 se ejecute correctamente, luego recompile libtorrent , luego vuelva a instalar rtorrent .

Paso 1 : Bajó la actualización a 4.9.2.

brew switch gcc 4.9.2

Paso 2 : asegúrate de que existe el enlace simbólico para libisl.10.dylib .

cd /usr/local/lib
ln -s libisl.dylib libisl.10.dylib

Paso 3 : desinstala y vuelve a instalar libtorrent .

brew uninstall libtorrent
brew install libtorrent

Paso 4 : reinstala rtorrent .

brew install rtorrent

Paso 5 : para estar seguro, cambia gcc a la última versión.

brew switch gcc 5.1.0
    
respondido por el Jimmy Markle 26.05.2015 - 17:00

Lea otras preguntas en las etiquetas