JH721 SW자율차 [리눅스기본및쉘] //6주차-2

JH·2021년 5월 18일
0
post-thumbnail

우분트 소프트웨어🐱‍🏍

우분트 홈페이지 -> LTS(long term service)라는 버전
배포판과 커널판은 다름
최신판 -> 버그 감당해야됨 // 임베디드랑 안맞을 수 있음

apt 오류시
apt-get : https://askubuntu.com/questions/590244/apt-get-update-fails-ubuntu-14-04
github(홍영기강사님) : https://github.com/guileschool
github 코드복사 -> clone -> git clone 주소 붙여넣기(Ctrl+Shift+v)

Prerequisite

sudo vim etc/apt/source.list에 복사한 코드 넣기
sudo rm etc/apt/source.list <- 안되면 반복
sudo apt update
sudo apt install 패키지이름


라이브러리🐱‍👓

  • 정적 라이브러리 : 알반 오브젝트 파일을 묶은 모음
  • 공유 라이브러리 : 메모리를 관리하기 쉽다.(참조하기 때문에)
  • 동적 라이브러리 (수업 시간에는 다루지 않음)

라이브러리화 하면 소스코드 -> 오브젝트 파일 만들 때 빨라짐
라이브러리는 시작이 lib로 시작함 // Windows DLL(dynamically linked library)과 같음

심볼릭링크 & 하드 링크


포인터와 사용법이 비슷한 것 같다.

ln -s(심볼릭링크//없으면 하드링크) (원주소) (심볼주소) : 링크(윈도우의 바로가기)
심볼릭링크 : (파일을 가르키는) 경로를 가르킴(7바이트)
하드링크 : 파일을 직접 가르킴

공유라이브러리 사용하기

  1. LD_LIBRARY_PATH 환경변수
  2. /etc/ld.so.conf 환경변수
  3. /usr/local/lib 라이브러리 경로 /usr/lib

컴파일 하기🤔
gcc -c hello.c -> hello.o 만들어짐
(lib디렉토리에서)gcc -c myfunc.c -> myfunc.o 만들어짐
gcc -o hello hello.c lib/myfunc.o -> hello 실행파일 만들어짐

심볼릭 링크 두개 // 동적 라이브러리 사용


Make🐱‍🚀

프로그램을 작성할 때 makefile 또한 작성하여 make를 사용하여 프로그램을 빌드한다.

makefile 작성규칙

타겟: 의존성...
<TAB문자> 명령(쉘명령)...

<Type_1>
2번(줄) main.o -> 5번 main.o -> main.c -> 6번 gcc실행 ->2번 func1.o -> ... -> 12번 gcc실행 -> 3번 gcc실행

<Type_3>
3번째 줄의 내용을 바꾸면 intel/arm 프로세서 둘다 사용 가능

<Type_4>
매크로 사용시 4번처럼 // 😖BUT 디폴트 타겟은 소괄호묶어줌!


TIP!
1 && 2 : 1이 참이면 2실행 // 1이 거짓이면 2노실행

profile
JH.velog

0개의 댓글