2016-06-28 4 views
3

최종 목표는 내 Synology DiskStation DS1813 +에 DSM 6.0.1-7393 업데이트 1을 사용하여 Nagios를 설치하는 것입니다.하지만 패키지를 컴파일 할 수도 없습니다. .Synology DSM6 - libc.so.6 - 파일 형식이 인식되지 않습니다.

$ gcc hello.c -o hello.o 
/lib/libc.so.6: file not recognized: File format not recognized 
collect2: ld returned 1 exit status 

가 여기 내 쉘 환경의 :

나는 항상 다음과 같은 오류 메시지가 내 Synology DiskStation을에 GCC를 사용하려고

. 다른 LD_LIBRARY_PATH 설정으로 시도했지만 차이를 만들지 않아도 생략했습니다.

$ env 
TERM=xterm-256color 
SHELL=/bin/sh 
SSH_CLIENT=192.168.2.110 51079 22 
OLDPWD=/var/services/homes/egi 
SSH_TTY=/dev/pts/7 
LC_ALL=en_US.utf8 
USER=egi 
LD_LIBRARY_PATH=/opt/lib: 
PAGER=more 
MAIL=/var/mail/egi 
PATH=/opt/sbin:/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin 
PWD=/var/services/homes/egi/exer 
LANG=en_US.utf8 
PS1=[\[email protected]\h \W]$ 
SHLVL=1 
HOME=/var/services/homes/egi 
TERMINFO=/usr/share/terminfo 
LOGNAME=shunyam 
SSH_CONNECTION=xxx.xxx.xxx.xxx 51079 yyy.yyy.yyy.yyy 22 
PGDATA=/var/services/pgsql 
CC=gcc 
_=/opt/bin/env 

컴파일러는 ipkg 로 설치하고 그 사양은 다음과 같이 :

$ /lib/libc.so.6 
GNU C Library (crosstool-NG 1.20.0) stable release version 2.20-2014.11, by Roland McGrath et al. 
Copyright (C) 2014 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. 
Compiled by GNU CC version 4.9.3 20150311 (prerelease). 
Available extensions: 
    crypt add-on version 2.1 by Michael Glad and others 
    GNU Libidn by Simon Josefsson 
    Native POSIX Threads Library by Ulrich Drepper et al 
    BIND-8.2.3-T5B 
libc ABIs: UNIQUE IFUNC 
For bug reporting instructions, please see: 
<http://www.gnu.org/software/libc/bugs.html>. 

도있다 :

$ gcc --verbose 
Using built-in specs. 
Target: i686-linux-gnu 
Configured with: ../gcc-4.2.1/configure --build=i386-pc-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu --prefix=/opt --disable-nls --disable-static --with-as=/home/slug/optware/syno-i686/toolchain/gcc-4.2.1-glibc-2.3.6/i686-linux-gnu/bin/i686-linux-gnu-as --with-ld=/home/slug/optware/syno-i686/toolchain/gcc-4.2.1-glibc-2.3.6/i686-linux-gnu/bin/i686-linux-gnu-ld --enable-languages=c,c++ --disable-multilib 
Thread model: posix 
gcc version 4.2.1 

문제를 일으키는 라이브러리는이 정보를 반환

/opt/lib/libc.so의 링커 스크립트 :

$ cat /opt/lib/libc.so 
/* GNU ld script 
    Use the shared library, but some functions are only in 
    the static library, so try that secondarily. */ 
OUTPUT_FORMAT(elf32-i386) 
GROUP (/lib/libc.so.6 /opt/lib/libc_nonshared.a) 

라이브러리가 실제로 손상 될 수 없습니다. 그렇지 않으면 전혀 작동하지 않습니다.

gcc 이외의 다른 모든 필수 패키지도 ipkg으로 설치되었습니다.

Google에서 관련 게시물을 찾지 못해서 이상하게도 그 문제가있는 유일한 사람인 것처럼 보입니다. Synology의 지원은 명령 커맨드 라인 패키지 설치를 지원하지 않는다고 말했습니다.

약 2 년 전에이 Diskstation에 처음 gcc를 설치했을 때 모든 것이 잘 작동했습니다. 나는이 문제를 몇 달 전에 발견했다. (아마 DSM 업데이트 이후).

누구도이 문제를 보거나 다시 작동시키는 방법에 대한 단서가 있습니까? 감사! 나는 ++ 다른 g을 사용하고 같은

+0

'file -L/lib/libc.so.6'은 무엇을 인쇄합니까? –

+0

'$ file -L /lib/libc.so.6 /lib/libc.so.6 : ELF 64 비트 LSB 공유 객체, x86-64, 버전 1 (GNU/Linux), 동적 링크 (공유 라이브러리 사용), GNU/Linux 2.6.32 용, 벗겨 내기 세그먼트 오류' – Gfy

답변

3

이 똑같은 문제가있었습니다. GCC가 작동하여 DSM 6.1이 고장났습니다. DSM 6.0을 사용하여 64 비트로 전환 한 이후로 생각합니다. 귀하의 질문은 실제로 나에게 대답을 주었으므로 여기에서 그것을 나누고 싶었습니다. 파일 /opt/lib/libc.so에서 /lib/libc.so.6/lib32/libc.so.6으로 변경했습니다. 당신이 리눅스 시스템에 기대처럼 설정 한 환경 변수없이 내 테스트 파일을 컴파일의 Optware의 GCC 위의 변경 한 후

$ cat /opt/lib/libc.so 
/* GNU ld script 
    Use the shared library, but some functions are only in 
    the static library, so try that secondarily. */ 
OUTPUT_FORMAT(elf32-i386) 
GROUP (/lib32/libc.so.6 /opt/lib/libc_nonshared.a) 

.

+0

와우, 그 바위! 이것은 내가 찾고 있었던 바로 그 것이다. 이제는 시스템의 어딘가에서 다른 것을 깨뜨리지 않기를 희망합니다. ;-) –

+0

/opt는 optware에서만 사용되며 optware는 모두 32 비트이므로 사용하지 않으면 안됩니다. 다른 문제들. 너는 결코 알지 못한다. 몇 달 전에이 변경을 한 이래로 나는 한 가지 문제를 안고있다 :-) – Eric

0

같습니다 :

/volume1/homes/user/x86_64-pc-linux-gnu/bin/x86_64-pc-linux-gnu-g++ 

그것은이 파일에서 온 : gcc473_glibc217_x86_64_cedarview-GPL.tgz.

다른 사람들은 DSM 6에서도 문제가 있습니다. 에서 데비안 Chroot 패키지를 사용하는 것이 좋습니다.

+0

데비안 Chroot 트랙에서 나를 설정해 주셔서 감사합니다! 이것은 실제로 나의 다른 문제점의 상당수를 해결합니다! 너무 늦게 대답 드려 죄송합니다, 내 관심은 다른 곳에서 ... –

관련 문제