










เอกสารโครงการ
C ++ เป็นภาษาที่ยอดเยี่ยมสำหรับใช้สำหรับแอปพลิเคชันและเทมเพลตแบบฝังเป็นสิ่งที่ทรงพลัง ห้องสมุดมาตรฐานสามารถเสนอฟังก์ชั่นการทดสอบที่ดีได้อย่างมาก แต่มีบางส่วนของไลบรารีมาตรฐานที่ไม่สอดคล้องกับพฤติกรรมที่กำหนดและข้อกำหนดของทรัพยากรที่ จำกัด ข้อ จำกัด เหล่านี้มักจะขัดขวางการใช้หน่วยความจำและคอนเทนเนอร์ที่มีการจัดสรรแบบไดนามิกด้วยขนาดที่เปิดสิ้นสุด
สิ่งที่จำเป็นคือไลบรารีเทมเพลตที่ผู้ใช้สามารถประกาศขนาดหรือขนาดสูงสุดของวัตถุใด ๆ ล่วงหน้า คอมไพเลอร์ที่ฝังตัวส่วนใหญ่ไม่รองรับมาตรฐานที่เกินกว่า C ++ 03 ดังนั้นจึงไม่รวมโปรแกรมเมอร์จากการใช้คุณสมบัติขั้นสูงของไลบรารีในภายหลัง
นี่คือสิ่งที่ ETL พยายามที่จะบรรลุ
ETL ไม่ได้ออกแบบมาเพื่อแทนที่ STL อย่างสมบูรณ์ แต่เติมเต็ม วัตถุประสงค์การออกแบบครอบคลุมสามพื้นที่
ไลบรารีเทมเพลตแบบฝังได้รับการออกแบบมาสำหรับแอพพลิเคชั่นที่ฝังอยู่ในทรัพยากรที่ต่ำกว่า มันมีชุดของคอนเทนเนอร์อัลกอริทึมและยูทิลิตี้ซึ่งบางส่วนเลียนแบบส่วนต่าง ๆ ของ STL ไม่มีการจัดสรรหน่วยความจำแบบไดนามิก ห้องสมุดไม่ได้ใช้กอง คอนเทนเนอร์ทั้งหมดมีความจุคงที่ช่วยให้การจัดสรรหน่วยความจำทั้งหมดได้รับการพิจารณาในเวลาคอมไพล์ ห้องสมุดมีไว้สำหรับคอมไพเลอร์ใด ๆ ที่รองรับ C ++ 98/03/11/14/17/20
ความช่วยเหลือใด ๆ ในการย้ายห้องสมุดให้ทำงานภายใต้แพลตฟอร์มและคอมไพเลอร์ที่แตกต่างกันจะได้รับอย่างสุดซึ้ง ฉันสนใจเป็นพิเศษในผู้ที่ใช้ Keil, IAR, Green Hills, Ti Code Composer ฯลฯ , โลหะเปลือยหรือ RTOS และ DSP
ดู (https://www.etlcpp.com) สำหรับข้อมูลที่ทันสมัย
คุณสามารถค้นหาขั้นตอนการตั้งค่าได้ที่นี่
วิธีหนึ่งในการใช้ไลบรารีนี้คือการวางที่ไหนสักแห่งในไดเรกทอรีโครงการของคุณจากนั้นทำให้ไลบรารีพร้อมใช้งานโดยใช้ add_subdirectory
add_subdirectory (etl)
add_executable (foo main.cpp)
target_link_libraries (foo PRIVATE etl::etl)หากไลบรารี ETL ถูกใช้เป็น Submodule GIT อาจต้องใช้การกำหนดค่าเพิ่มเติมสำหรับความละเอียด ETL ที่เหมาะสมโดยอนุญาตให้ค้นหาโฟลเดอร์ GIT นอกไดเรกทอรีรูทไลบรารี
set (GIT_DIR_LOOKUP_POLICY ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR)
add_subdirectory (etl) หากคุณต้องการติดตั้งไลบรารีนี้ด้วย CMake คุณสามารถทำตามขั้นตอนต่อไปนี้ บน Linux อาจจำเป็นต้องมีสิทธิ์ผู้ใช้ Super ในการติดตั้งไลบรารีดังนั้นจึงจำเป็นต้องเพิ่ม 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) หรือคุณสามารถใช้ FetchContent, แทนที่ <targetVersion> ด้วยเวอร์ชันเพื่อติดตั้งตามแท็ก GIT:
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 Library Manager) พื้นที่เก็บข้อมูลของ Arduino Library มีให้ที่ https://github.com/ETLCPP/etl-arduino โปรดดูรายละเอียดเพิ่มเติมที่นั่น