본문 바로가기

System/Linux6

<Linux> gcc option [표 1] gcc 옵션 Option 의미 -E 전처리를 실행하고 컴파일을 중단 -c 소스 파일을 컴파일만 하고 링크를 수행 X, 오브젝트 파일 생성 -o 바이너리 형식의 출력 파일 이름을 지정, 지정하지 않으면 a.out라는 기본 이름이 적용 -I 헤더 파일을 검색하는 디렉토리 목록을 추가 -L 라이브러리 파일을 검색하는 디렉토리 목록을 추가 -l 라이브러리 파일을 컴파일 시 링크 -g 바이너리 파일에 표준 디버깅 정보를 포함 -ggdb 바이너리 파일에 GNU 디버거인 gdb만이 이해할 수 있는 많은 디버깅 정보를 포함 -O 컴파일 코드를 최적화 -ON 최적화 N 단계를 지정 -DFOO=RAR 명령라인에서 BAR의 값을 가지는 FOO라는 선행 처리기 매크로를 정의 -static 정적 라이브러리를 링크 -.. 2022. 4. 15.
<Linux> gcc 동작 과정 리눅스에서는 C 언어의 코드를 컴파일 하기 위하여 gcc 명령어를 사용한다. gcc는 아래의 프로그램을 차례대로 수행한다. [표1] gcc가 실행시키는 프로그램 cpp 전처리기 cc1 컴파일러 as 어셈블리 ld 링커 1. 전처리 단계 cpp는 소스 파일의 #include와 #define과 같은 #으로 시작하는 전처리기 부분 처리 필요한 해더 파일을 삽입, 실행 문장의 매크로를 상수로 변환 file.c(소스파일)이 전처리기를 거쳐 file.i가 생성되지만 디스크에 저장은 안 됨 2. 컴파일 단계 file.i가 컴파일러를 거쳐 file.s가 생성되지만 바로 어셈블 단계가 실행되므로 디스크에 저장은 안 됨 3. 어셈블 단계 file.s(소스파일)이 어셈블러를 거쳐 file.o(오브젝트 파일)가 생성 오브젝트.. 2022. 4. 15.
<Linux> Error: Dpkg: Error Processing [Something] (--Configure) 리눅스에서 apt-get update 를 이용할 때 Error: Dpkg: Error Processing [Something] (–Configure) 같은 에러가 발생했습니다. 구글링으로 여러 방법을 이용해 보았지만 이분의 방법이 저에게 도움이 되었습니다. 감사합니다. cd /var/lib/dpkg sudo mv info info.bak sudo mkdir info sudo apt-get upgrade 참고로 이분의 방법도 약간의 효과는 있었다! rm /var/lib/dpkg/info/libc-bin.* apt-get clean apt-get update apt-get upgrade 저 같은 경우는 낮은 우분트 버전에서 해서 그런지 첫 번째 방법이 가장 좋았다. 하지만 아직도 다른 에러와 싸우는 중이다... 2022. 4. 14.
<Linux> Ubuntu 9.04에서 apt-get update 오류 해결법!(Some index files failed to download, they have been ignored, or old ones used instead) 업무를 위해서 Vmware에 ubuntu 9.04를 다운로드하였다. install을 하기 위해 $ sudo apt-get update 를 입력하는데 오류가 발생 ㅠㅠ E: Some index files failed to download, they have been ignored, or old ones used instead. 구글링을 해보니 이 분(정긍정님)이 잘 정리해주셨고 따라서 하니 해결되었다. 감사합니다. 필요한 준비물은 위에 "이 분"을 클릭하셔서 sources.list.txt 파일을 다운로드하시고 vi /etc/apt/sources.list 를 터미널에 입력하셔서 위에 파일로 수정해주셔야 합니다. 저의 기억으로 파일이 read_only 파일로써 저장할 때 :w! 해주시고요! 여담이지만 저는 아.. 2022. 4. 7.