не удалось скомпилировать: нераспознанное перемещение 0x2a в тексте раздела

Я получил сообщение об ошибке при компиляции "make"

$ make
g++ -fopenmp  -o lang.test main.o -I../../../include/Lheader -I../../../include -L../../../lib/ -llmi -lblas -lboost_regex -lpthread -lleveldb
/usr/bin/ld: ../../../lib//liblmi.a(LMInterface.o): unrecognized relocation (0x2a) in section `.text'
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status

Я не могу найти решение для вышеуказанной проблемы.

Версия GCC и версия ld выглядят следующим образом:

$ gcc --version
gcc (Ubuntu 5.4.1-2ubuntu1~14.04) 5.4.1 20160904
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


$ ld --version
GNU ld (GNU Binutils for Ubuntu) 2.24
Copyright 2013 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.

Как исправить эту проблему компиляции?


person Gi Yeon Shin    schedule 10.10.2018    source источник
comment
Возможный дубликат Не удалось скомпилировать: нераспознанное перемещение   -  person mattm    schedule 13.04.2019


Ответы (2)


Перемещение 42 на x86-64 — это R_X86_64_REX_GOTPCRELX. Эти перемещения используются для оптимизаций, реализованных в binutils. 2.26 и выше.

Вам нужно либо обновить версию binutils, либо перекомпилировать библиотеку, которую вы хотите использовать с текущей версией набора инструментов.

person Florian Weimer    schedule 10.10.2018
comment
Я установил binutils-2.26 от apt-get install binutils-2.26, но пока не заработало. ld --version команды дают мне GNU ld (GNU Binutils for Ubuntu) 2.24. Итак, как я могу изменить версию? Makefile такой: CC = g++ -fopenmp CFLAGS = -c -02 -Wall -D_I368 -D_UNIX -fPIC -Wno-unused-result -std=c++11 -Wno-sign-compare - person Gi Yeon Shin; 11.10.2018

Вам необходимо обновить версию GCC. Вы можете сделать это, выполнив следующие команды:

yum install centos-release-scl -y
yum install devtoolset-7 -y
scl enable devtoolset-7 bash
person tianya duan    schedule 22.04.2019