c언어를 컴파일 하는 과정에서 어셈블리 코드를 확인하는 과제가 있었는데
리눅스에서 컴파일했던 기억이 까마득해서 에러때문에 고생좀 했다.
우선 방법은 간단하다.
그냥 .c형식의 c소스코드를 작성해주고
gcc -O1 -S -m32 test.c
이렇게 적어주면 된다. -m32는 32비트 어셈블리를 확인하겠다는거고 -S는 어셈 코드를 보겠다는거고 -O1은 최적화 단계를 설정해주는 거다. 이것도 O이 숫자인줄 알고 계속 하다가 뭔가 생겨먹은게 이상해서 그제야 알아차린거다. 지금 생각해보면 웃기긴한데 심각하게 왜 안되는지 이리저리 애먹었다... ㅋㅋ 아마 Optimization이라는 뜻인걸까?
특히 c를 컴파일해줄때
bits/libc-header-start.h: No such file or directory 오류
라는 오류가 빨갛게 터미널에 뜰텐데 (안뜨면 그냥 하면 됩니다.)
sudo apt-get install gcc-multilib g++-multilib
이렇게 써주면 된다. 즉 지금 내 환경에서 없는거 설치해주는거다.
근데 이걸 실행하려고 하는데 또 갑자기 여기서 저 문장이 실행이 안된다. 그땐 뭘하면 되냐면
(lock 혹은 closed 머시기라고 드면서 설치좀 하다가 중간에 갑자기 중단될거다. )
1.
sudo killall apt apt-get
2.
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
3.
sudo dpkg --configure -a
sudo apt update
이렇게 3번까지 진행하고 다시 2번 -> 1번 순으로 역으로 진행하면 된다. 위에서 설명을 잘 못했는데 그냥 아래 블로그 끼고 문제 해결하면 금방 해결될거다.
https://hellodata.tistory.com/24
https://my-repo.tistory.com/12
https://jangpd007.tistory.com/220
위의 블로그에서 많은 도움을 받았다.
'Linux' 카테고리의 다른 글
[Linux] Linux Error - Could not get lock /var/lib/dpkg/lock-frontend (0) | 2022.11.09 |
---|---|
[Linux] Oracle VirtualBox 사용중 Cannot enable nested VT-x/AMD-V 에러 발생 (0) | 2022.03.14 |
[Linux] 우분투에서 비어있지 않은 폴더 삭제하기 - Directory not empty (0) | 2021.06.27 |