










Dokumentasi Proyek
C ++ adalah bahasa yang hebat untuk digunakan untuk aplikasi dan templat yang tertanam adalah aspek yang kuat. Perpustakaan standar dapat menawarkan banyak fungsi yang diuji dengan baik, tetapi ada beberapa bagian dari perpustakaan standar yang tidak cocok dengan perilaku deterministik dan kebutuhan sumber daya yang terbatas. Keterbatasan ini biasanya menghalangi penggunaan memori yang dialokasikan secara dinamis dan wadah dengan ukuran akhir terbuka.
Yang dibutuhkan adalah perpustakaan template di mana pengguna dapat mendeklarasikan ukuran, atau ukuran maksimum dari objek apa pun di muka. Sebagian besar kompiler tertanam saat ini tidak mendukung standar di luar C ++ 03, oleh karena itu tidak termasuk programmer dari menggunakan fitur yang disempurnakan dari perpustakaan selanjutnya.
Inilah yang coba dicapai oleh ETL.
ETL tidak dirancang untuk sepenuhnya menggantikan STL, tetapi melengkapinya. Tujuan desainnya mencakup tiga area.
Perpustakaan template tertanam telah dirancang untuk aplikasi tertanam sumber daya yang lebih rendah. Ini berisi satu set wadah, algoritma dan utilitas, beberapa di antaranya meniru bagian STL. Tidak ada alokasi memori dinamis. Perpustakaan tidak memanfaatkan tumpukan. Semua wadah memiliki kapasitas tetap yang memungkinkan semua alokasi memori ditentukan pada waktu kompilasi. Perpustakaan dimaksudkan untuk kompiler apa pun yang mendukung C ++ 98/03/11/14/17/20.
Setiap bantuan porting perpustakaan untuk bekerja di bawah platform yang berbeda dan kompiler akan diterima dengan penuh syukur. Saya terutama tertarik pada orang -orang yang menggunakan Keil, IAR, Green Hills, Ti Code Composer dll, Bare Metal atau RTOS, dan DSP.
Lihat (https://www.etlcpp.com) untuk informasi terkini.
Anda dapat menemukan langkah pengaturan di sini.
Salah satu cara untuk menggunakan perpustakaan ini adalah dengan menjatuhkannya di suatu tempat di direktori proyek Anda dan kemudian membuat perpustakaan tersedia dengan menggunakan add_subdirectory
add_subdirectory (etl)
add_executable (foo main.cpp)
target_link_libraries (foo PRIVATE etl::etl)Jika pustaka ETL digunakan sebagai submodule GIT, mungkin memerlukan konfigurasi tambahan untuk resolusi versi ETL yang tepat dengan memungkinkan pencarian untuk folder git di luar direktori root pustaka.
set (GIT_DIR_LOOKUP_POLICY ALLOW_LOOKING_ABOVE_CMAKE_SOURCE_DIR)
add_subdirectory (etl) Jika Anda ingin menginstal pustaka ini dengan CMake, Anda dapat melakukan langkah -langkah berikut. Di Linux, hak pengguna super mungkin diperlukan untuk menginstal perpustakaan, jadi mungkin perlu menambahkan sudo sebelum perintah terakhir:
git clone https://github.com/ETLCPP/etl.git
cd etl
git checkout < targetVersion >
cmake -B build .
cmake --install build/ Setelah perpustakaan diinstal, Anda dapat menggunakan find_package untuk menggunakan perpustakaan. Ganti <majorVersionRequirement> dengan versi utama yang Anda inginkan:
find_package (etl <majorVersionRequirement>)
add_executable (foo main.cpp)
target_link_libraries (foo PRIVATE etl::etl) Atau Anda dapat menggunakan fetchContent, mengganti <targetVersion> dengan versi untuk menginstal berdasarkan tag 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) Konten repo ini tersedia sebagai perpustakaan di Arduino IDE (cari "Perpustakaan Template Tertanam" di IDE Library Manager). Repositori Perpustakaan Arduino tersedia di https://github.com/ETLCPP/etl-arduino , lihat di sana untuk detail lebih lanjut.