










프로젝트 문서
C ++는 임베디드 애플리케이션에 사용하기에 훌륭한 언어이며 템플릿은 강력한 측면입니다. 표준 라이브러리는 잘 테스트 된 기능을 많이 제공 할 수 있지만, 표준 라이브러리에는 결정 론적 행동 및 제한된 자원 요구 사항에 적합하지 않은 일부가 있습니다. 이러한 제한은 일반적으로 동적으로 할당 된 메모리와 컨테이너가 개방 된 크기로 사용하는 것을 배제합니다.
필요한 것은 사용자가 선불 객체의 크기 또는 최대 크기를 선언 할 수있는 템플릿 라이브러리입니다. 대부분의 임베디드 컴파일러는 현재 C ++ 03 이외의 표준을 지원하지 않으므로 프로그래머가 이후 라이브러리의 향상된 기능을 사용하는 것을 제외합니다.
이것이 ETL이 달성하려는 시도입니다.
ETL은 STL을 완전히 교체하도록 설계되지 않았지만 보완합니다. 디자인 목표는 세 가지 영역을 포함합니다.
임베디드 템플릿 라이브러리는 더 낮은 리소스 임베디드 애플리케이션을 위해 설계되었습니다. 여기에는 컨테이너, 알고리즘 및 유틸리티 세트가 포함되어 있으며 일부는 STL의 일부를 모방합니다. 동적 메모리 할당은 없습니다. 도서관은 힙을 사용하지 않습니다. 모든 컨테이너에는 고정 용량이있어 모든 메모리 할당을 컴파일 시간에 결정할 수 있습니다. 라이브러리는 C ++ 98/03/11/14/17/20을 지원하는 모든 컴파일러 용입니다.
라이브러리가 다른 플랫폼과 컴파일러에서 작동하도록 포팅하는 데 도움이됩니다. 특히 Keil, Iar, Green Hills, Ti Code Composer 등, Bare Metal 또는 RTO 및 DSP를 사용하는 사람들에게 관심이 있습니다.
최신 정보는 (https://www.etlcpp.com)를 참조하십시오.
여기에서 설정 단계를 찾을 수 있습니다.
이 라이브러리를 사용하는 한 가지 방법은 프로젝트 디렉토리의 어딘가에 떨어 뜨린 다음 add_subdirectory 사용하여 라이브러리를 사용할 수 있도록하는 것입니다.
add_subdirectory (etl)
add_executable (foo main.cpp)
target_link_libraries (foo PRIVATE etl::etl)ETL 라이브러리를 GIT 하위 모듈로 사용하는 경우 라이브러리 루트 디렉토리 외부의 GIT 폴더를 조회하여 적절한 ETL 버전 해상도를위한 추가 구성이 필요할 수 있습니다.
set (GIT_DIR_LOOKUP_POLICY ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR)
add_subdirectory (etl) CMAKE 로이 라이브러리를 설치하려면 다음 단계를 수행 할 수 있습니다. Linux에서는 라이브러리를 설치하는 데 슈퍼 사용자 권한이 필요할 수 있으므로 마지막 명령 전에 sudo 추가해야 할 수도 있습니다.
git clone https://github.com/ETLCPP/etl.git
cd etl
git checkout < targetVersion >
cmake -B build .
cmake --install build/ 라이브러리가 설치된 후 Find_package를 사용하여 라이브러리를 사용할 수 있습니다. <majorVersionRequirement> 원하는 주요 버전으로 교체하십시오.
find_package (etl <majorVersionRequirement>)
add_executable (foo main.cpp)
target_link_libraries (foo PRIVATE etl::etl) 또는 GIT 태그를 기반으로 설치할 버전으로 <targetVersion> 대체하여 FetchContent를 사용할 수 있습니다.
Include(FetchContent)
FetchContent_Declare(
etl
GIT_REPOSITORY https://github.com/ETLCPP/etl
GIT_TAG < targetVersion >
)
FetchContent_MakeAvailable(etl)
add_executable(foo main.cpp)
target_link_libraries(foo PRIVATE etl::etl) 이 repo의 내용은 Arduino IDE의 라이브러리로 제공됩니다 (IDE 라이브러리 관리자의 "임베디드 템플릿 라이브러리"검색). Arduino 라이브러리 저장소는 https://github.com/ETLCPP/etl-arduino 에서 제공됩니다. 자세한 내용은 참조하십시오.