freeseaboy 님의 멋있어 지려 노력하는 블로그
리눅스 탐방(1) make,gcc 등등 본문
자 오늘은 리눅스 앱에 관해 리뷰 및 공부를 해보겠다..
일단 내용은 아래와 같다.
- make
- gcc
- cmake
- tar
- unzip gunzip
일단 동영상을 보면서 천천히 알아가 보면 좋을거같다
바로 조져 보자..
참고로 메모장에 적은 스크립트는 동영상 맨아래에 첨부해놓겠다...
행운을 빈다.
!!!긴급!!!
알수없는 이유로 동영상이 차단되어 우회 대피소
N기업 블로그로 링크 걸어 두었습니다.
https://blog.naver.com/iwseo7114/223635349752
****************************************************
- gcc 컴파일
- 컴파일을 할때 생기는 변화....
- make
- "" make ~
- cmake
- "" cmake ~
GCC는 GNU Complier Collection (모음)
GNU 컴파일러 컬렉션(수집)
-> GNU 컴파일 모음...
컴파일러가 다양하니깐
인터프리터는 요거는 즉각 스크립트로 된 내용을 줄단위로(라인단위)
어떤 코드가 (A code)
code A -> 실행파일로 변환하기위해서
컴파일러.... 컴파일러 말고도 다른 부수적인 도구들이 있어야 컴파일이
완벽하게 된다고 하네요.
라이브러가
python import os
역사가 GNU 전용 컴파일을 하기위해 만들어졌데요~
변 변 벼녑ㄴ 벼녀 -> FSF 재단
FSF 재단은 자유 소프트웨어 즉 오픈소스를 지향하고 있데요
사용도 무료 배포도 무료 근데
무조건 얘들 도구를 1이라도 0.0000000000001 쓰면
무조건 공개해야하는 규칙이 있다는거죠..
물론 GPL 라이센스에 따라서 약간의 내용이 바뀌긴 합니다
gpl 버전에 1 2 등등
이런 부분은 라이센스 규정을 참고해야겠죠..
gcc 인식은 대표적으로 c c++ 프로그래머가 만든 소스코드를 프로그래밍 하는 컴파일러로
인식되고 있다....
컴파일을 했을시 (리눅스 기준 윈도우는 테스트 안해봄)
-> gcc test.c -> No Error 가 되면
성공이라고 하네요....
컴파일시 아웃풋이 되는 즉 실행파일이 나오는데
나올때 우리가 이름을 명시적으로 지정해주면 좋다...
지정을 안하면 리눅스 기준 gcc에서는 a.out 라는 파일로 만들어 진다
파일을 만들고 만들어진 실행파일에 이름을 부여하는건
-o 옵션을 주면 된다...
gcc 컴파일할때 1개 이상의 소스코드도 가능하다...매우 유연하다.
다음...
Make 란?
Make -> 만들다(동사)
프로젝트를 하게 되면 단순히 100개 10개 아닌 수천개 혹은 수만개의
소스파일이 생긴다.
그런걸 일일 노가다 처럼 gcc 명령으로 수동작업을 하면
엄청난 생산성 저하로 이어질수 있어 데안으로
MAKE라는게 생겨났다...
a b c d d 2 2 3 4 5 5 234 23 23 432 424 23 424 4
| | | | | | |
--------------------------> 컴파일 그것도 자동으로 하는 기술이란거죠...
| | | || |||||
----------------------------->컴파일 가능
이런식으로 한다는거 같아요
make 는 기본적으로 구문이 있다하네요..
구분을 한번 볼게요.
1.Makefile 을 만든다.
- 즉 처리 로직을 넣으라는거죠.
2.Make 실행한다..
내용을 채어넣어야되죠?
Makefile 연다.
메이크를 통해 만들 파일명을 적는다.
각각 오브젝트 파일을 적는다
그리고 오브젝트 파일에 필요한 소스코드를 나열한다.
T-D-C
Target - Dependency - Command
3종세트가 필수다...
MAKE는 100개 이하의 파일은 별로 사용성에 있어 메리트가 없어 보일수 있다.
근데 100개이상이 되면 MAKE없이는 정말 살수가 없을정도로 중독성이 강해진다...
크로스 컴파일 이랑 플랫폼으 의미가 완전히 다르다....
크로스 컴파일은 대상 컴퓨터 구조가 다른경우에도
새롭게 설계를 하지않고 바로 컴파일 할수 있는 용어!!
크로스 플랫폼은....
어느 특정 엔진이 있어요...
어느 컴퓨터든 엔진이 들어가게 되면 그위에서 동작하는 모든 행위는 다 되는 그런 용어라고 하네요
AJSDJLKASJD AJSDJLKASJD
--------------- -------------
BetaEngine ShitEngine
--------------- --------------
SM3 밴스
리눅스든 윈도우든 맥이든 ....
CMAKE가 설치되어있으면
CMAKE에서 지원하는 모든 컴파일러를 이용해서
소스코드를 언제 어디서든 빌드할수있다.
크플~
cmake는 소스코드를 받아 빌드하면된데요.
cmake는 간단한 키워드를 제공해서 개발할수 있는 환경처럼 만들어준데요...완벽하진 않지만.
if 변숫 ㅏㅇ수...
Regex이게 가능하대요..
정규표현식이죠?
엄청 강합니다 근데 엄청 어려워요...
자 타르....?담배??
tar는 리눅스에서 파일 및 폴더 압축이아닌 묶는거임..
tar .tar
tar .tar.gz
tar .xz
tar tar.xz
-A tar파일을 아카이브에 추가
-c 새 tar파일을 만든다.
gzip...
GNU에서 배포하는 압축 유틸뤼티..
높은 압축율을 젝오.
압축파일이 aaa.gz
gzip aaa.tar aaa.tar.gz
gunzip aaa.tar.gz -> aaa.tar
****************************************************

'컴퓨터 & 서버 > 리눅스' 카테고리의 다른 글
도커(2) 도커에 시비걸기!! (1) | 2024.11.02 |
---|---|
리눅스 탐방(3) 하드웨어 나머지정리 (2) | 2024.11.01 |
SystemDown!!!(1)트러블 메이커 유후~ (0) | 2024.10.30 |
도커(1) 도커는 왜 도커인가? (3) | 2024.10.29 |
리눅스 탐방(2) xz,bzip2 및 하드웨어 등등 (1) | 2024.10.28 |