이것은 여기에 두 번째 게시물이고 공부를 방해하는 큰 문제가 있으므로 최대한 빨리 수정해야 합니다!
내 gcc는 잘 작동하고 있습니다. FairThreads(C 언어)에서 작업해야 합니다. 다음 아카이브를 다운로드했습니다.
보시다시피 /src에 makeFile이 있고 두 번째 줄을 바꿨습니다.
LIB_DIR = ../lib
통과
LIB_DIR = /usr/bin/ld
"make" 명령을 통해 makeFile을 컴파일했습니다.
이제 더 이상 c/c++ 프로그램을 컴파일할 수 없습니다. 심지어 Hello World 프로그램도요.
컴파일을 시도할 때마다 터미널에 다음과 같은 오류 메시지가 나타납니다.
/usr/bin/ld: 2: /usr/bin/ld: Syntax error: newline unexpected
collect2: error: ld returned 2 exit status
이 솔루션을 온라인에서 찾았지만 나에게는 효과가 없습니다.
sudo apt-get autoremove binutils
sudo apt-get install binutils
또한 실행할 때 gcc를 다시 설치해 보았습니다.
sudo apt-get purge gcc
나는 가지고있다:
Des erreurs ont été rencontrées pendant l'exécution :
linux-firmware
linux-image-generic-hwe-18.04
linux-generic-hwe-18.04
E: Sub-process /usr/bin/dpkg returned an error code (1)
하지만 gcc --version을 시도하면 찾을 수 없다는 메시지가 나타납니다.
따라서 다시 설치하기 위해 명령을 실행하면 다음과 같습니다.
sudo apt-get install gcc
나는 또한 다음을 얻습니다:
Des erreurs ont été rencontrées pendant l'exécution :
linux-firmware
linux-image-generic-hwe-18.04
linux-generic-hwe-18.04
linux-image-5.4.0-72-generic
initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)
그러나 gcc --version은 그것이 설치되었음을 알려줍니다.
마지막으로 프로그램을 컴파일하려고 하면 다음과 같은 결과가 나타납니다.
/usr/bin/ld: 2: /usr/bin/ld: Syntax error: newline unexpected
collect2: error: ld returned 2 exit status
잘 설명하면 해결책을 얻을 수 있기를 바랍니다 :/, 컴퓨터 공학을 전공하는 학생으로서 gcc 없이는 아무것도 할 수 없습니다 :(
편집 1:
다음을 실행하여 bin/ld를 제거하려고 하면:
sudo rm -fr /usr/bin/ld;sudo apt-get install --reinstall binutils
나는 가지고있다:
Des erreurs ont été rencontrées pendant l'exécution :
linux-firmware
linux-image-generic-hwe-18.04
linux-generic-hwe-18.04
linux-image-5.4.0-72-generic
initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)
그리고 이 특정 오류 메시지는 다음과 같습니다.
WARNING: no ldd around - install libc-bin
편집하다:
다음 명령을 통해 ldd를 설치했습니다.
sudo apt-get install libc-bin
아직도 변화가 없네요...
답변1
바이너리를 덮어썼습니다 /usr/bin/ld
(그렇게 말하지는 않았지만 make
루트로 실행하고 있다고 가정합니다).
/usr/bin/ld
정상적인 빌드 환경을 가지려면 제거하고 다시 설치해야 합니다 .
Debian 파생 버전을 사용하는 경우 sudo rm -rf /usr/bin/ld;sudo apt-get install --reinstall binutils
이 작업을 수행해야 합니다 .