2015-09-01 3 views
3

Я пытаюсь скомпилировать ruby-2.2.3. Я загрузил пакет и настроил его. Но когда я попытался сделать это, он бросает следующее сообщение об ошибке:Ошибка: символ `pread64 'уже определен

compiling main.c 
/tmp/cc2lrvgn.s: Assembler messages: 
/tmp/cc2lrvgn.s:413: Error: symbol `pread64' is already defined 
make: *** [main.o] Error 1 

Далее приведены мои системные детали:

$ lsb_release -a 
LSB Version: :core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch 
Distributor ID: CentOS 
Description: CentOS release 5.10 (Final) 
Release:  5.10 
Codename:  Final 

Ниже приводится версия детали компилятор, который я использую:

gcc --version 
gcc (GCC) 4.8.2 
Copyright (C) 2013 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. 

Я провел некоторое расследование об этой ошибке и обнаружил, что эта ошибка присутствует в заголовках libc- . Я попытался обновить libc-заголовки. Но это тоже не помогло. Поэтому, если кто-то решил эту проблему, пожалуйста, помогите.

Благодаря

ответ

2

Это вызвано изменением GCC 4.3, что приводит к ее несовместимой со старыми GLibC заголовками: http://lifecs.likai.org/2009/06/multiple-definition-of-extern-inline.html из этой статьи, быстрая работа вокруг, чтобы добавить -fgnu89-инлайн к вашему CFLAGS:

./configure prefix =/USR --enable-общий --docdir =/USR/доли/DOC/рубиново-2.2.3 ... CFLAGS = -fgnu89-рядный

, а затем сделать должно сработать.