Перемещение R_X86_64_32 против `_nc_globals'не может быть использовано при создании общего объекта; перекомпилировать с -fPIC при установке readline

Я пытаюсь установить readline с помощью команды "python setup.py install", перейдя в каталог, где я не застрахован readline 6.2.4.1. ncurses-6.0 в настоящее время установлен на сервере. Я попытался перекомпилировать с -fPIC, но это также не решает проблему

Команда: sudo CFLAGS="-fPIC" python setup.py install

Журнал ошибок:

здания 'Readline' расширение GCC -pthread -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-прототипы -fPIC -fPIC -DHAVE_RL_CALLBACK -DHAVE_RL_CATCH_SIGNAL -DHAVE_RL_COMPLETION_APPEND_CHARACTER -DHAVE_RL_COMPLETION_DISPLAY_MATCHES_HOOK -DHAVE_RL_COMPLETION_MATCHES -DHAVE_RL_COMPLETION_SUPPRESS_APPEND -DHAVE_RL_PRE_INPUT_HOOK -I. -I/home/ роуминг /i332346/opt/Python-local/include/python2.7 -c модули /2.x/readline.c -o build/temp.linux-x86_64-2.7/ модули /2.x/readline.o -Wno-strict-prototypes В файле, включенном в /home/roaming/i332346/opt/Python-local/include/python2.7/Python.h:126:0, из модулей /2.x/readline.c:8: /home/roaming/i332346/opt/Python-local/include/python2.7/modsupport.h:27:1: предупреждение: 'PyArg_ParseTuple' является нераспознанным типом функции формата [-Wformat=] PyAPI_FUNC(int) PyArg_ParseTuple(PyObject *, const char *, ...) Py_FORMAT_PARSETUPLE(PyArg_ParseTuple, 2, 3); ^ gcc -pthread -shared -fPIC build/temp.linux-x86_64-2.7/ Модули /2.x/readline.o readline/libreadline.a readline/libhistory.a -lncurses -o build/lib.linux-x86_64-2.7/readline.so /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: /usr/lib/libncurses.a(lib_termcap.o): перемещение R_X86_64_32 против `_nc_globals'нельзя использовать при создании общего объекта; перекомпиляция с -fPIC /usr/lib/libncurses.a: ошибка при добавлении символов: неверное значение collect2: ошибка: ld вернул 1 ошибка состояния выхода: команда 'gcc' завершилась неудачно с состоянием выхода 1

1 ответ

Я попробовал следующее, и это сработало.

Перейдите в каталог ncurses, который содержит configure и запустите следующее./configure --with-shared --without-debug make make install

Затем установите readline снова. Ошибка исчезла. Модуль был успешно установлен.

Другие вопросы по тегам