2015-11-10 3 views
3

Я пытаюсь установить Caffe на Debian, но когда я делаю make all я получаю эту ошибку:кофейных перекомпилировать с ошибкой -fPIC libglog.a

/usr/bin/ld: /usr/local/lib/libglog.a(logging.cc.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC

/usr/local/lib/libglog.a: could not read symbols: Bad value

collect2: error: ld returned 1 exit status make: *** [.build_release/lib/libcaffe.so] Error 1

, где я должен добавить -fPIC флаг? Я также читал, что этого недостаточно для gflags.

Любые предложения?

+0

Имеет ли Caffe документацию по добавлению к какой-либо конкретной переменной типа CFLAGS? Вы также можете сообщить им, что их сборка нарушена (потому что это так), и что они должны обрабатывать это сами. –

+0

Я не могу найти документацию о добавлении определенного 'CFLAGS' – user2071581

+0

О, hm, я неправильно прочитал эту ошибку. Это может быть проблемой с тем, как вы скомпилировали библиотеку «glog». (Я предполагаю, что вы скомпилировали это самостоятельно.) Возможно, вам придется перекомпилировать * эту * библиотеку с помощью '-fPIC'. –

ответ

0

Кажется, единственное решение для перекомпиляции проблемных сторонних сторон с -fPIC. (Если вы не можете ссылаться на .so вместо .a)
Стандартная сборка статических библиотек в пакетах должна строиться без -fPIC.
В glog, например, вы должны добавить его к флагам C в файле compile.ac.