c libraries how install
이 C ++ 라이브러리 자습서에서는 C ++의 라이브러리가 무엇인지, 해당 유형과 함께 C ++ 표준 라이브러리의 설치 및 사용에 대해 설명합니다.
라이브러리는 재사용 가능한 코드 또는 함수의 패키지로 정의 할 수 있습니다. 다양한 응용 프로그램이 동일한 라이브러리를 반복해서 사용할 수 있습니다. 라이브러리를 보유함으로써 재사용 가능성, 즉 객체 지향 프로그래밍의 원칙 중 하나를 달성합니다.
예를 들면 sin, cos, tan, abs 등과 같은 수학 함수를 라이브러리로 만들 수 있습니다. 이렇게하면 모든 응용 프로그램에 대해 이러한 함수를 반복해서 작성할 필요가 없습니다. 라이브러리를 참조하고 애플리케이션에서 코드를 재사용 할 수 있습니다.
=> 처음부터 C ++를 배우려면 여기를 방문하십시오.
학습 내용 :
C ++ 라이브러리
C ++ 라이브러리는 일반적으로 다음으로 구성됩니다.
헤더 파일 : 이것은 라이브러리가 제공하는 기능을 정의합니다.
미리 컴파일 된 바이너리 : 이 파일에는 기능의 실제 구현이 포함되어 있습니다. 이 구현은 기계 언어로 사전 컴파일됩니다.
라이브러리는 거의 변경되지 않으므로 라이브러리를 다시 컴파일 할 이유가 없으므로 사전 컴파일됩니다. 둘째, 사전 컴파일 된 라이브러리가 기계어 형식이므로 아무도 직접 액세스 할 수 없으므로 보안이 유지됩니다. 따라서 라이브러리가 보호됩니다.
C ++에는 두 가지 유형의 라이브러리가 있습니다.
- 정적 라이브러리
- 동적 라이브러리
정적 라이브러리
정적 라이브러리는 아카이브라고도합니다. 정적 라이브러리는이를 참조하는 실행 파일의 일부가되는 라이브러리입니다. 따라서 응용 프로그램을 개발하고 그 안의 정적 라이브러리를 참조 할 때 응용 프로그램에서 정적 라이브러리의 내용이 대체됩니다.
Windows의 정적 라이브러리는 일반적으로 '.lib'확장자를 가지며 Linux의 정적 라이브러리에는 '.a'(또는 아카이브) 확장자가 있습니다.
프로그램 참조 정적 라이브러리의 장점 중 하나는 실행 파일과 함께 정적 라이브러리를 배포 할 필요가 없다는 것입니다. 이는 정적 라이브러리의 내용이 응용 프로그램의 일부이며 별도로 제공 할 필요가 없기 때문입니다.
이러한 특정 이점은 실행 파일이 부피가 커지고 라이브러리가 실행 파일의 일부이기 때문에 너무 많은 공간이 낭비 될 수 있다는 단점이 있습니다.
정적 라이브러리를 갖는 또 다른 단점은 정적 라이브러리가 변경되면이를 참조하는 실행 파일도 업데이트해야한다는 것입니다.
동적 라이브러리
동적 라이브러리는 '공유 라이브러리'라고도합니다. Windows에서 동적 라이브러리의 확장자는 '.dll'(동적으로 연결된 라이브러리)입니다. Linux에서 동적 라이브러리의 확장자는 '.so'(공유 객체)입니다.
PC 용 자유 시간 시계 소프트웨어
동적 라이브러리는 런타임에 애플리케이션에로드되는 루틴으로 구성된 라이브러리입니다. 응용 프로그램이 동적 라이브러리를 참조하면 라이브러리는 응용 프로그램의 일부가되지 않지만 별도의 단위로 유지됩니다.
동적 라이브러리는 여러 응용 프로그램에서 하나의 라이브러리 복사본을 공유하여 공간을 절약 할 수 있다는 장점이 있습니다. 또 다른 장점은 동적 라이브러리가 별도의 단위이므로 동적 라이브러리가 변경 될 때 응용 프로그램 실행 파일이 변경되지 않는다는 것입니다.
동적 라이브러리의 유일한 단점은 번거로울 수있는 라이브러리를로드하고 참조하기 위해 별도의 프로그램이 필요하다는 것입니다. 이 문제를 해결하기 위해 '라이브러리 가져 오기'루틴을 사용합니다.
안 가져 오기 라이브러리 동적 라이브러리를 프로그램에 자동으로로드하고 사용하는 메커니즘입니다. Windows에서 가져 오기 라이브러리는 .dll 파일과 이름이 같은 작은 정적 라이브러리 (.lib)를 유지하며 컴파일시 프로그램에 링크됩니다.
이 작업이 완료되면 동적 라이브러리가 마치 정적 라이브러리 인 것처럼 사용됩니다. Linux 운영 체제에서 동적 라이브러리 또는 공유 개체 (.so) 파일은 가져 오기 라이브러리 및 동적 라이브러리 역할을합니다. Linux OS의 대부분의 링커는 동적 라이브러리에 대한 가져 오기 라이브러리를 빌드 할 수 있습니다.
C ++ 라이브러리를 설치하고 사용하는 방법
이러한 라이브러리를 설치하고 애플리케이션에서 사용하기 위해 따라야하는 몇 가지 단계를 살펴 보겠습니다.
# 1) 도서관 획득
응용 프로그램에서 라이브러리를 사용하려면 먼저 라이브러리를 획득해야합니다. 라이브러리는 미리 컴파일 될 수 있습니다.이 경우 운영 체제 용 라이브러리를 다운로드하기 만하면됩니다. 라이브러리가 미리 컴파일되지 않은 경우 소스 코드를 다운로드하여 컴퓨터에서 컴파일해야합니다.
Windows에서 라이브러리는 일반적으로 .zip 확장자를 가지며 Linux 운영 체제에서는 라이브러리 패키지가 '.RPM'으로 배포됩니다.
# 2) 라이브러리 설치
라이브러리를 얻은 후 다음 단계는 라이브러리를 설치하는 것입니다. Windows에 설치하는 것은 폴더에서 라이브러리의 내용을 압축 해제하는 것만 큼 간단합니다. Linux에서는 패키지 관리자를 호출하여 라이브러리를 설치할 수 있습니다.
# 3) 컴파일러의 라이브러리 경로 포함
컴파일러가 라이브러리 파일을 찾을 위치를 알 수 있도록 라이브러리 경로를 설정해야합니다. Windows의 경우‘include’디렉토리이고 Linux의 경우‘/ usr / include’일 수 있습니다.
# 4) 라이브러리 경로 연결
이 단계는 링커가 연결 프로세스 중에 연결해야하는 라이브러리의 정확한 경로를 알 수 있도록 수행됩니다. 일반적으로 모든 라이브러리가 포함 된 Windows의 경우‘/ lib’폴더, Linux의 경우‘/ usr / lib’폴더가 있습니다.
라이브러리가 설치되면 컴파일러와 링커가 사용할 라이브러리의 경로를 알고 라이브러리를 사용할 수 있습니다. 프로그램에서 라이브러리 기능을 참조 할 수 있으며 프로그램에 헤더 파일을 포함 했으므로 컴파일러는 기능을 컴파일 할 수 있습니다.
프로그래머는 대부분 개발을 위해 IDE를 사용하므로 IDE 자체에 라이브러리 경로를 지정합니다.
C ++의 표준 헤더 / 라이브러리
C ++ 언어에서 사용하는 몇 가지 표준 헤더 또는 라이브러리에 대해 설명하겠습니다. 우리는 이미 C ++ 튜토리얼의 각 주제에서 이러한 헤더에 대해 논의했습니다.
C 표준 라이브러리
ANSI C 표준은 C 표준 라이브러리 또는 libc C 프로그래밍 언어의 표준 라이브러리 역할을합니다. C ++는 시작 부분에 'c'를 추가하고 끝 부분에 '.h'를 제거하여 C 표준 라이브러리의 각 헤더를 다른 이름으로 포함합니다. 따라서 C의 헤더 xxx.h는 C ++ 표준에서 'cxxx'가됩니다.
C 표준 라이브러리는 특히 매크로, 문자열 처리, 수학적 계산 유형 정의, 입력 / 출력 처리, 메모리 관리 등과 관련된 기능을 제공합니다.
데스크탑 지원 인터뷰 질문 및 답변 pdf
검사 여기 C 표준 라이브러리에 대한 자세한 내용은.
일반
일반 C ++ 라이브러리에는 다음과 같은 헤더가 포함됩니다.
헤더의 이름 | 기술 |
---|---|
튜플의 기능을 정의합니다. C ++ 11부터 사용할 수 있습니다. | |
많은 컨테이너에서 사용하는 알고리즘이이 헤더에 정의되어 있습니다. | |
std :: chrono :: time_point, std :: chrono :: duration 및 clocks와 같은 시간 요소를 포함합니다. | |
이 헤더는 일반 알고리즘과 함께 사용할 함수 객체를 제공합니다. | |
반복기에 대한 클래스 및 템플릿이 포함되어 있습니다. | |
C ++에서 메모리 관리 기능을 정의합니다. | |
std :: logic_error 및 std :: runtime_error를 포함한 표준 예외 클래스를 정의합니다. 둘 다 std :: exception에서 파생됩니다. | |
std :: pair 등과 같은 템플릿 클래스 또는 std :: rel_ops와 같은 네임 스페이스가이 헤더에 정의되어 있습니다. |
스트림 및 입력 / 출력
헤더의 이름 | 기술 |
---|---|
템플릿 클래스 std :: ostream 및 기타 출력 지원 클래스의 기능을 포함합니다. | |
파일 기반 입출력 기능을 제공합니다. | |
정밀도, 기본 등과 같은 출력 형식 지정 기능을 포함합니다. | |
iostream 작업을위한 기본 기능을 포함합니다. | |
여러 I / O 관련 클래스 템플릿의 정방향 선언을 제공합니다. | |
C ++ 입력 및 출력 기본 사항을 제공합니다. | |
템플릿 클래스 std :: istream 및 기타 입력 지원 클래스의 기능을 포함합니다. | |
템플릿 클래스 std :: stringstream 및 문자열 조작에 사용되는 기타 지원 클래스를 정의합니다. | |
외부 파일 또는 문자열과 같은 특정 유형의 문자 시퀀스를 읽고 쓰기위한 기능을 포함합니다. |
언어 지원
헤더 이름 | 기술 |
---|---|
단일 종단 대기열 인 std :: queue 및 우선 순위 대기열 인 std :: priority_queue에 대한 기능을 구현합니다. | |
이 헤더에는 모든 예외에 대한 기본 클래스 인 std :: exception을 포함하여 예외 처리를위한 다양한 유형과 함수가 포함되어 있습니다. | |
이 헤더에는 기본 숫자 속성을 설명하는 데 사용되는 std :: numeric_limits 템플릿 클래스가 포함되어 있습니다. | |
새 연산자, 삭제 및 C ++ 메모리 관리의 기본과 관련된 기타 기능을 포함합니다. | |
C ++ 런타임 유형 정보 작업을위한 기능을 제공합니다. |
문자열
헤더의 이름 | 기술 |
---|---|
이 헤더에는 C ++의 표준 문자열 클래스와 템플릿이 포함되어 있습니다. | |
이것은 C ++ 11의 새로운 기능입니다. 정규식을 사용하여 패턴 일치 문자열을위한 유틸리티를 제공합니다. |
현지화
헤더 이름 | 기술 |
---|---|
이 헤더에는 로케일 기능이 있습니다. 클래스를 정의하고 로케일에 특정한 정보를 캡슐화하고 조작하는 함수를 선언합니다. | |
다양한 문자 인코딩에 대한 코드 변환 패싯을 포함합니다. |
컨테이너
헤더 이름 | 기술 |
---|---|
고정 크기 배열의 컨테이너 인 std :: array에 대한 기능을 포함합니다. C ++ 11 및 TR1에 새로 추가되었습니다. | |
특수 컨테이너 클래스 std :: bitset, 비트 배열. | |
양방향 대기열 인 std :: deque에 대한 기능을 포함합니다. | |
단일 연결 목록 인 std :: forward_list의 헤더입니다. C ++ 11 및 TR1에 새로 추가되었습니다. | |
이중 연결 목록 인 std :: list에 대한 기능을 포함합니다. | |
std :: map 및 std :: multimap, 정렬 된 연관 배열 및 멀티 맵에 대한 기능을 포함합니다. | |
std :: set 및 std :: multiset, 정렬 된 연관 컨테이너 또는 세트에 대한 헤더가 있습니다. | |
컨테이너 어댑터 클래스 std :: stack, 스택을 제공합니다. | |
이 헤더에는 std :: unordered_map 및 std :: unordered_multimap, 해시 테이블 기능이 포함되어 있습니다. C ++ 11 및 TR1의 새로운 기능. | |
std :: unordered_set 및 std :: unordered_multiset에 대한 기능을 제공합니다. C ++ 11 및 TR1의 새로운 기능입니다. | |
동적 배열 인 std :: vector에 대한 기능을 제공합니다. |
스레드 지원 라이브러리
헤더의 이름 | 기술 |
---|---|
C ++ 11 이후의 스레드 작업을위한 새로운 클래스 및 네임 스페이스. | |
C ++ 11 이후에 새로 추가되었습니다. 상호 배제를위한 모든 메커니즘 인 뮤텍스, 잠금, 한 번 호출 등을 제공합니다. | |
다른 스레드에서 일부 조건이 충족되었음을 알리거나 시스템 시간에 도달 할 때까지 스레드를 차단하는 데 사용되는 동기화 기본 요소를 제공하는 조건 변수에 대한 기능을 포함합니다. C ++ 11 이후에 새로 추가되었습니다. | |
이 헤더에는 C ++ 프로그램이 한 스레드에서 검색하는 데 사용할 수있는 구성 요소와 동일한 스레드 또는 다른 스레드에서 실행 된 함수의 결과 (값 또는 예외)가 있습니다. |
숫자 라이브러리
헤더의 이름 | 기술 |
---|---|
헤더는 복소수를 표현하고 조작하기위한 다양한 기능을 설명합니다. 또한 복소수를위한 클래스 템플릿이 있습니다. | |
(의사) 난수 생성 기능 | |
이 헤더에는 -5 개의 클래스 템플릿 (valarray, slice_array, gslice_array, mask_array 및 indirect_array), -두 가지 클래스 (slice 및 gslice), -값의 배열을 표현하고 조작하기위한 일련의 관련 함수 템플릿. | |
일반 숫자 연산을 포함합니다. |
결론
C ++ 라이브러리의 유형과 라이브러리 설치 및 설정 단계에 대해 자세히 설명했습니다.
우리는 표준 C ++ 라이브러리에 다양한 기능을 제공하는 다양한 헤더가 포함되어 있다는 것을 알게되었습니다. 이러한 표준 라이브러리 헤더를 사용하여 C ++로 다양한 애플리케이션을 개발할 수 있습니다.