6-1. Vmware의 OS를 지우고 재설치, root권한 재설정

.

Vmware의 우분투 OS를 지우고 재설치 하기로 했다.

간단하다 탭 - 우클릭 - Manage - Delete from disk를 해주면 된다.


이제는 한글 설정까지 해서

(http://experience.so/128) 이대로 재설치... 차근차근 따라가면 잘 된다.

용량도 이렇게 10GB 잡아놓고. 행복하다.





완료




설정

트랙백

댓글

6. 우분투 vmware tools 설치 및 용량부족으로 인한 용량 늘리기.

.

(http://blog.naver.com/isentator/10185059203)

앞서 말했듯이 나는 4GB 용량 할당을 주고 설치하였는데... 

슬픈 일이 발생하였다. 그래서 4GB -> 6GB로 용량을 늘리는데 도전.


일단 VM -> VMware Tools 를 선택.












이제 여기서 부터 문제다

(http://pastime0.tistory.com/199)


위 사이트를 보고 잘 따라해서






설정

트랙백

댓글

5. 우분투에 Vim 설치 및 세팅, vi 명령어

.

(http://theblack.tistory.com/4)


Ctrl + Alt + T로 터미널을 연다.

기본적으로 Ubuntu에는 vim-tiny가 깔려있다. Tiny... 지워야겠지..


apt-get remove vim-tiny



이제 vim을 깔아야겠다.


apt-get install vim




C언어 코딩을 위한 vi 설정 방법
  • 기본으로 깔려있는 vi 대신 Vi improved(vi 기능향상판) 인 vim을 설치한다.
    • #sudo apt-get install vim
  • vimrc 설정을 바꾼다
    • #sudo vi /etc/vim/vimrc
  • vimrc
    • "===========환경 설정===============
    • "syntax on
      "filetype on     "파일의 종류를 자동으로 인식
      filetype indent on "파일 종류에 따른 구문강조
      "colorscheme torte
      colorscheme evening
      "colorscheme desert
      set fencs=ucs-bom,utf-8,euc-kr,latin1

      "===========기본 설정===============
      set shiftwidth=2  "들여쓰기를 2칸으로 설정
      set tabstop=2     "tap 간격을 2칸으로 설정
      set sts=2         "tap 간격을 space로 변경
      set laststatus=2  "상태정보 라인 2줄
      set statusline=%h%F%m%r%=[%l:%c(%p%%)]   "상태정보라인 구성
      "set backspace=eol, start, indent      "줄의 끝, 시작, 들여쓰기에서 백스페이스시 이전줄로

      "===========옵션 설정===============
      "set showcmd          " Show (partial) command in status line.
      set showmatch          " Show matching brackets.
      "set ignorecase          " Do case insensitive matching
      "set smartcase          " Do smart case matching
      "set incsearch          " Incremental search
      "set autowrite          " Automatically save before commands like :next and :make
      "set hidden             " Hide buffers when they are abandoned
      set mouse=a          " Enable mouse usage (all modes)

      set autoindent "자동 들여쓰기
      set cindent "C프로그래밍용 자동 들여쓰기
      set smartindent "스마트한 들여쓰기
      set ruler "화면 우측하단에 현재 커서의 위치(줄,칸) 표시
      set number "행번호 표시, set nu도 가능
      set sm "가로닫기 괄호를 사용할 때 일치하는 가로 열기 괄호를 보여줌
      set hlsearch "검색어 강조, set hls도 가능
      set incsearch "검색어 입력하면서 결과도 보여줌
      set ignorecase "검색시 대/소문자 무시
      set nowrap "자동 줄바꿈기능 사용하지 않음
      set nocompatible "오리지날 vi와 호환하지 않음
      set nowrapscan "검색할 때 문서의 끝에서 처음으로 안돌아감
      set nobackup "백업파일 안만듬
      set history=1000 "vi 편집기록 기억갯수. viminfo에 기록





viminit.txt

이 파일의 내용과 같이 복사해서 써도 된다.

그런데 vi 명령어 중 전체 삭제는 아직도 모르겠다.


vi 명령어 정리(http://gyuha.tistory.com/157)


dd

커서가 있는 행을 삭제

[n]dd

현재 커서 부터 아래 n번째 줄까지 삭제




이렇게 위 사진처럼 드래그 해서 붙여넣기 해준다.




설정

트랙백

댓글

4. VMware를 이용하여 우분투 설치. root권한 설정

.

(http://experience.so/128)

보통 우분투 설치를 위해 VMware 용량을 20GB정도 잡아준다고 한다.

그런데 나는 하드에 용량이 별로 없어서 4GB를 잡았다.

설치과정을 조마조마하게 보면서...

그러나 무리없이 성공!





터미널을 쓰고 싶다면 ctrl+alt+t를 해도 된다!


firefox를 통한 인터넷도 잘 되네!
이제 무리없이 사용할 수 있겠다.

아래처럼 root 권한을 가질 수 있게 설정하였다.

설정

트랙백

댓글

3. make file 숙제(recursive, macro사용) 해보기. 각각의 함수를 .h를 이용해 .c 로 저장해보기

.

참고자료(http://forum.falinux.com/zbxe/index.php?document_srl=405822&mid=gcc)

Gcc 컴파일 과정, 라이브러리 생성, Makefile 기초

Gcc 옵션 정복

Makefile 문법 쉽게 설명하기


Maekfile 다중 C 프로그래밍




일단 make file을 만들기 전에 

2.번의 2와 1500 사이 소수를 출력하는 코드를 만들어야겠다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <stdio.h>
 
int main()
{
    int i,j;
    FILE *fp=fopen("prime.txt""wt"); //*fp에서 prime.txt 만들고 옵션 wt
 
    printf("2와 1500사이에 있는 모든 소수\n");
    
    for(i=2; i<=1500; i++) {
        for(j=2; j<=i; j++) {
            if(i%j == 0) { //i의 값을 j로 나눈값이 0일경우 반복문 out.
                break;
            }
        }
 
        if(i==j) { //큰 for문 안에 있음. 소수출력 ,예를들어 i=4, j=2일때 첫 if문의 조건은  
                   //맞지만 i==j가 아니기 때문에 2가 소수이긴 하나 중복이 되지않는다.
            printf("%d \n", i);
            fprintf(fp, "%d \n", i);//i 값을 저장
        }
    }
 
    printf("\n");
    
 
    fclose(fp); // 꼭 닫아준다.
    
    printf("성공적으로 저장되었습니다 \n");
 
    for(;;);  // 비쥬얼에서 확인 위해 for(;;); 로 고쳤다.
}
 


이렇게 출력 성공! (나중에 \n 넣어서 다 한 행씩 표시되게 해놨다)


이렇게 prime.txt 파일도 출력했다.



이제 두번째 코드를 만드는게 문제다.

2개 자연수 받는 Input()함수는 

                                  

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 2 number input
// transfer and calculate area of triangle
 
#include <stdio.h>
 
int Input()
{
        int a, b;
        printf("write 2 numbers to input\n");
        scanf("%d %d", &a, &b);
 
        return a, b;
}
 

 

원래 input 하나짜리 함수는 해봤는데 두개 받아서 내보내는건 어떻게 하는거지...

이거이려나... 아마 main문 시작하자마자 Input() 쓰면 나오겠지..?




이제부터가 진짜 시작이다. 

각각의 input.c, area.c로 함수들을 저장해서 전체가 똑같이 돌아가도록 하는 것.

이를 위해서는 .h 헤더파일의 선언이 있어야 한다.


참고로 "input.h"는 절대경로다. <stdio.h>는 상대경로이고. 왼쪽처럼 헤더파일 폴더에 새로만들기를 하여 .h 파일을 만들면 된다. 대부분 헤더파일 이름은 주요한 함수들의 이름을 따라간다.


아래 코드는 메인함수

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "input.h"
 
int main()
{
    int x=0, y=0; 
    float result=0;
    
    Input(&x, &y); //x,y 주소값->*a, *b의 실제 가리키는 값 = x, y
    result = Cal_area(x,y);
 
    printf("삼각형의 넓이는 %.3f", result);
    return 0;
}
 
 



아래코드는 input 전용 함수와 계산함수.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "input.h"
 
int Input(int *a, int *b) // 리턴값 int 있음.
{
    while(1){
        printf("2개 자연수 \n");
        scanf("%d %d", a, b); // *a, *b가 아닌 a, b에 scanf 값 받음.
 
        if(*a>0 && *b>0){
            printf("입력한 자연수는 %d, %d입니다\n", *a, *b);
            break;
        }
        else{
            printf("자연수만 입력하세요");
        break;
        }
    }
    return 0;
}
 
float Cal_area(int a, int b)
{
    return (float)a * (float)b / 2;
}
 



아래코드는 헤더파일 코드다.

1
2
3
4
5
#include <stdio.h>
 
int Input(int *a, int *b);
float Cal_area(int a, int b);
 






이렇게 C파트는 마무리 되고.

다음은 Makefile에 대한 공부다.


먼저 맨위를 보면 http://forum.falinux.com/zbxe/index.php?document_srl=405822&mid=gcc

위 같은 참고자료를 줬는데. 이게 아래의 모든 질문에 답해준다.


1.구조 란?

2. Macro 란?

3. gcc 개념

4. Makefile 어떻게 만드나

5. 종속적 recursive Makefile 만들기


1.

 Makefile 의 구조는 아래와 같습니다.

목표: 아래 명령을 실행하게 되는 모든 조건에 해당되는 파일 목록
    실행 명령어

위와 같이 구조가 되어있다는 것을 명심하고.


2.


$@목표 이름
$*목표 이름에서 확장자가 없는 이름
$<

조건 파일 중 첫번째 파일

$?목표 파일 보다 더 최근에 갱신된 파일 이름


3.

gcc -c main.c :  main.c 를 컴파일해서 main.o를 생성합니다.

gcc -0 hello hello.c : hello.c 를 컴파일해서 hello.o를 생성합니다.


4.

vi Makefile


5. 종속적 Makefile 만들기

http://wndrlf2003.blog.me/70176733234




최종 완료 후 make 실행.

이런 화면이 보인다.


디렉토리 c아래 a에서 저렇게 초록색 실행파일이 생겼다.

디렉토리 c아래 b에서도 저렇게 초록색 실행파일이 생겼다.


이걸 위처럼 tar.gz으로 압축해서 제출하면 되겠다.

그나저나 모르고 tar zcvf ~~.tar.gz ./ 으로 명령했다가 

root 아래 모든 파일을 압축하고있는 대실수를 한번 했다 ~_~;;

압축 푸는 옵션은 zxvf다!!


_____________________________________________________________________________________


위 스샷은 디렉토리 c의 Makefile 코드.



위 스샷은 디렉토리 a의 Makefile 코드.



위 스샷은 디렉토리 b의 Makefile 코드.




설정

트랙백

댓글

1. 우분투 기초 명령어 공부.

.

공부(실습)해야 할 목록

설정

트랙백

댓글