>운영 및 유지보수 >리눅스 운영 및 유지 관리 >임베디드 Linux 개발 도구란 무엇입니까?

임베디드 Linux 개발 도구란 무엇입니까?

藏色散人
藏色散人원래의
2023-03-17 09:43:152981검색

임베디드 Linux 개발 도구에는 다음이 포함됩니다. 1. vim 도구 vim은 vi에서 개발된 텍스트 편집기입니다. 프로그래밍을 용이하게 하는 코드 완성, 컴파일 및 오류 점프와 같은 기능이 있습니다. 2. 프로그래밍 언어로 개발된 gcc 컴파일러입니다. GNU에서 개발한 컴파일러 3. 프로젝트 관리자 make, make는 Linux 등의 자동 프로젝트 컴파일 관리자입니다.

임베디드 Linux 개발 도구란 무엇입니까?

이 튜토리얼의 운영 환경: linux5.9.8 시스템, Dell G3 컴퓨터.

임베디드 Linux 개발 도구란 무엇입니까?

내장 Linux 개발 도구

vim 사용

1. 텍스트 편집기: vim + vscode: vim 사용 및 구성, 플러그인 설치 및 사용 방법 배우기 + 원격 링크 vscode

2. 일반적으로 사용되는 컴파일 옵션, 정적 라이브러리 및 동적 라이브러리의 생성 및 사용

3. 디버거 gdb: 중단점 디버깅, 메모리 보기, 메모리 오류 디버깅

4. 프로젝트 관리자 make: Makfile 작성, 다중 디렉토리 Makefile 작성

5. 쉘 프로그래밍(C 언어 이후)

6. git 버전 관리 도구(온라인: C 언어)

7. Cmake(프로젝트)

8. 메모리 감지 도구(온라인: C 언어)

vi /vim/gvim: 텍스트 편집기 gedit emac(마우스 제외)

  • 적용 가능한 시나리오: 단일 파일 편집, vim+플러그인(고도의 사용자 정의) >IDE

  • vim 모드: 명령줄 모드(처음 입력할 때 a를 누릅니다. ,i), 최종 모드, 삽입 모드(esc는 명령줄로 전환) wq 저장 및 종료

  • vim 구성(vimc):

/etc/vim/vimc 파일 수정(줄 번호, 들여쓰기 스타일, 마우스 지원)

vim /etc/vim/vimrc

플러그인 설치

  • Vim 명령 사용법:

명령줄: yy 복사 p 붙여넣기 dd 삭제 u 이전 줄 복원

맨 아래 줄: 찾기 /str ?str

바꾸기: line 숫자 또는 %s/old/new/gc

여러 파일 편집: vim 파일 1 파일 2 파일 3..

Jump: n 파일 이름

파일 저장 w r

sp + 파일 이름 다중 파일 쓰기

gcc 컴파일러

""와 ""의 차이점: 검색 경로가 다릅니다. 전자는 시스템 헤더 파일 디렉터리 " /usr/include》검색, 그렇지 않으면 오류가 보고됩니다

후자는 현재 디렉터리에서 검색되고, 그렇지 않으면 시스템 헤더 파일 디렉터리에서 검색됩니다. , 오류가 보고됩니다

사양: 시스템 헤더 파일 포함" "사용자 정의 헤더 파일 포함

#if 0 //注释 //#if 1//取消注释
#endif

프로세서마다 어셈블리가 다릅니다

시스템 내의 모든 헤더 파일은 vim/user/include/header 파일에 있습니다.

  • gcc 개요: GNU 프로젝트에서 제공하는 컴파일러(Unix cc 컴파일러) (컴파일 툴 체인 g++ ld ldfd) –> (크로스 컴파일 툴 체인)

  • 크로스 컴파일이란 무엇인가요? .c->.s->.o->elf

대상 머신에서 실행하기 위해 호스트 머신에서 코드를 컴파일하는 과정

다른 CPU 플랫폼에서 실행하기 위해 현재 CPU 플랫폼에서 컴파일 코드 프로세스

a\源文件到可执行经历了哪几个步骤?(预处理,编译,汇编,链接)
b\预处理的任务:头文件展开(#include)、宏替换(#define)、条件编译(#ifdef)(#开头的代码)
c\编译的任务:检查语法。转成汇编、生成汇编文件(.s/.S)
d\汇编的任务:编译汇编文件,生成目标文件(.o)
e\链接的任务:链接所有目标文件,生成符号表,生成可执行文件
  • 컴파일 옵션

-o(실행 파일 이름 변경: elf 형식?)

-E(컴파일러는 전처리만 수행)

-I: 헤더 파일 컴파일을 위한 타사 지정 경로

- S: 컴파일 단계로 진행

-c: 어셈블리 단계로 진행

-O1 -O2 -O3(컴파일 최적화): Baidu에서 수행된 작업 확인

-w(경고 해제) -Wall(경고 시) ): 경고 정보 전환

라이브러리 파일

  • 컴파일러 gcc(정적 라이브러리 및 동적 라이브러리의 생성 및 사용)

  • 디버거 gdb(공통 이름 지정, 호출 메모리 오류)

  • 프로젝트 관리 메이커( makefile 쓰기, 다중 디렉토리 Makefile 쓰기)

extern: 이 함수는 다른 파일에 정의되어 있습니다.

라이브러리 함수: printf scanf strcpy strcat (라이브러리 파일에 저장됨)

라이브러리 파일: 함수 및 변수 저장, 함수 및 내부 변수는 사용할 수만 있고 구현은 볼 수 없습니다

라이브러리 파일 분류: 정적 라이브러리(.a) 및 동적 라이브러리(.so)

정적 라이브러리(.a): 저장된 함수 및 변수, 컴파일 단계에서 실행 파일

동적 라이브러리(.so): 저장된 함수와 변수, 실행 단계에서 실행 파일에 로드

정적 라이브러리와 동적 라이브러리 사용의 차이점(실행 파일의 차이점:)

  • 정적 라이브러리를 사용하여 컴파일된 실행 파일>동적 라이브러리를 사용하여 컴파일된 실행 파일의 크기-메모리 오버헤드에 영향

  • 정적 라이브러리를 사용하여 컴파일된 실행 파일의 실행 속도>동적 라이브러리를 사용하여 컴파일 실행 파일의 실행 속도는

  • 정적 라이브러리로 컴파일된 실행 파일을 이용한 업그레이드

  • 정적 라이브러리로 컴파일된 실행 파일 사용 프로그램 배포>동적 라이브러리 사용 라이브러리로 컴파일된 실행 파일 프로그램

라이브러리 파일의 저장 경로:

시스템 작동에 필요한 라이브러리 파일: /lib

타사 소프트웨어 및 도구 작동에 필요한 라이브러리: /usr/lib

컴파일러는 자동으로 이 두 디렉터리로 이동하여 연결해야 하는 라이브러리 파일을 찾습니다.

정적 라이브러리 만들기:

  • 대상 소스 파일을 대상 파일로 컴파일: gcc -c 대상 소스 파일(여러 개일 수 있음) (gcc -c add.c)

  • ar 도구를 사용하여 정적으로 만듭니다: ar -rcs(create if 라이브러리가 존재하지 않음) , 존재하는 경우 업데이트) 생성할 라이브러리 파일 이름(lib+라이브러리 이름+접미사.a) 대상 파일

예: ar -rcs libadd.a add.o

정적 라이브러리 사용:

-l: 로드할 정적 라이브러리 지정 -l 라이브러리 이름

-L: 로드된 라이브러리 파일의 저장 경로 지정

gcc 소스 파일 -l 라이브러리 이름-L 라이브러리 저장 경로

예 : gcc deco.c -ladd -L./ libls

프로젝트 관리자 make

  • 프로젝트란 무엇인가요?

여러 소스 파일 + 기타 파일(그림 + 헤더 파일 + 스크립트 파일)

  • 프로젝트 관리자 작업: 여러 소스 파일 컴파일

gcc + 모든 소스 파일 -o 실행 파일 — >자동 컴파일

  • make는 Makefile 파일에 의존합니다.

  • Makefile 파일은 일종의 스크립트 파일(일괄 처리)이며 관련 구문이 있습니다.

  • Makefile 구문:

세 가지 요소: target, dependency , command

형식:

대상: 종속성

tab 명령

대상: 최종 생성된 파일

종속성: 대상을 생성하는 데 필요한 파일

명령: 대상을 생성할 때 실행해야 하는 명령

실행 order :

make: 기본적으로 첫 번째 Target Body에서 실행

make+ Target Body: 해당 Target Body에서 실행

Target Body가 의존하는 파일이 Target이라면 해당 Target은 종속성이 먼저 실행된 다음 대상 본문이 실행됩니다.

명령은 makefile을 빌드하거나 Makefile을 만들 수 있습니다. make -f Makefile -f 실행할 Makefile을 지정합니다.

Makefile:

참고: #

대상을 교체할 수 있습니다. by $@

임베디드 Linux 개발 도구란 무엇입니까?

임베디드 Linux 개발 도구란 무엇입니까?

임베디드 Linux 개발 도구란 무엇입니까?

임베디드 Linux 개발 도구란 무엇입니까?

임베디드 Linux 개발 도구란 무엇입니까?

다단계 디렉토리의 Makefile:

  • 최상위 Makefile: 마스터 컨트롤 Makefile

  • 하위 디렉토리 Makefile: 함수 Makefile

  • scripts 디렉터리 Makefile: 헤더 파일 Makefile

마스터 컨트롤 Make 파일: enter 각 기능 하위 디렉터리에서 make 명령을 실행하여 각 하위 디렉터리의 .o 파일을 실행 파일로 연결합니다.

Function Makefile: .c를 컴파일합니다.

헤더 파일 Makefile: 일부 변수 정의

관련 권장 사항: "Linux 비디오 튜토리얼"

위 내용은 임베디드 Linux 개발 도구란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.