2015-07-20 3 views
0

Я попытался собрать XDebug из источников, но я стал этим выходом:C компилятор не может создавать исполняемые файлы на OpenSUSE

[email protected]:~/xdebug-2.3.3> ./configure 
configure: loading site script /usr/share/site/x86_64-unknown-linux-gnu 
checking for grep that handles long lines and -e... /usr/bin/grep 
checking for egrep... /usr/bin/grep -E 
checking for a sed that does not truncate output... /usr/bin/sed 
checking for cc... cc 
checking whether the C compiler works... no 
configure: error: in `/home/fobo66/xdebug-2.3.3': 
configure: error: C compiler cannot create executables 
See `config.log' for more details 

There is my config.log.

Я обнаружил возможную ошибку:

/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file '/usr/lib/crt1.o' is incompatible with i386:x86-64 output /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file '/usr/lib/crti.o' is incompatible with i386:x86-64 output /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file '/usr/lib/crtn.o' is incompatible with i386:x86-64 output /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: dynamic STT_GNU_IFUNC symbol 'strcmp' with pointer equality in '/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../lib64/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie

Итак, как исправить это, когда мой компилятор не работает?

+0

Вы установили компилятор GCC? –

+0

Конечно!Как cc, так и gcc somehy, он был отправлен с шаблоном Zypper «C/C++ Development» – fobo66

ответ

0

Решенный!

Я только что переустановил glibc-devel с правильной архитектурой.

Как это сделать:

  1. Перейти к YaST
  2. Выберите "Управление программным обеспечением" инструмент
  3. В типе поля поиска glibc
  4. Марк упаковывает glibc и glibc-devel для обновления (нажмите на checkboxes)
  5. Выбрать glibc package
  6. Нажмите на e вкладка «Версии» внизу
  7. Выберите версию с правильной архитектурой, например. 2.19-16.15.1-x86_64
  8. Выберите glibc-devel пакет и сделать 6 и 7 для его
  9. Нажмите кнопку «Принять»
  10. Дождитесь окончания установки
  11. Закрыть окно

После компиляции должны работать должным образом.

Это Windows, как метод, и это причина, почему это отстой :)

Когда кто-нибудь знает, как сделать это с терминала, напишите ответ здесь.

1

попытаться собрать простой код с GCC

#include <stdio.h> 
int main() { printf("hello world\n"); return 0; } 

с командой

gcc -o simple simple.c 

если будет ошибка как эта «команда не найдена», то тогда НКУ не находится в окружающей среде дорожка.

также убедитесь, что GCC может найти стандартные заголовочные файлы (например, stdio.h и т.д.)

+0

Странный. Существует выход gcc: 'gcc -o simple simple.c В файле, включенном в /usr/include/features.h:402:0, из /usr/include/stdio.h:27, от simple.c : 1: /usr/include/gnu/stubs.h:10:27: фатальная ошибка: gnu/stubs-64.h: Нет такого файла или каталога # включить ^ компиляция завершена. ' – fobo66

+0

ах, попробуйте установить glibc-devel :) –

+0

Он уже установлен, но для архитектуры i686. – fobo66

1

/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: i386 architecture of input file '/usr/lib/crt1.o' is incompatible with i386:x86-64 output Кажется, компоновщик получает 32-разрядную версию требуемых OBJ файлов, в которых он нуждается 64-бит из них , Попробуйте установить переменную среды LD_LIBRARY_PATH в соответствующие пути из/usr/lib64 и перекомпилировать.

+0

В 64-битных файлах 'crt1.o' и т. Д. В'/usr/lib64' нет необходимости. Может быть, я ищу в неправильном месте? – fobo66

+0

Нет ли файла с именем 'crt1.o' в'/usr/lib * '? Если нет, то вашей системе, вероятно, не хватает пакетов 'glibc-devel'. Вы можете проверить, действительно ли они установлены с помощью команды 'rpm -qa | grep glibc'. Если не установлено, попробуйте установить пакеты 'glibc-devel'. – aks

+0

Он уже установлен, но для архитектуры i686. Как переустановить его для x86-64? – fobo66

Смежные вопросы