گیاهی ترین گیاهی ترین AnzanDigital فروشگاه
cmake100

معرفی Cmake

CMake نرم افزار متن باز دیگری است که فرآیند کامپایل یک سامانه نرم افزاری را با استفاده از فایل های پیکربندی مستقل از پلتفرم کنترل می کند. اگر قصد نصب OpenCv ویا ابزار های دیگری که قابلیت نصب در چندین پلتفرم را دارند احتمالا با CMake سروکار خواهید داشت. با بیر رباتیک همراه باشید.

cmake100

معرفی:

CMake به عنوان یک سیستم ساخت (build) اپن سورس و مستقل-از پلتفرم است،از خانواده ی ابزار هایی است که برای ساخت ،تست و بسته بندی (package) نرم افزار مورد استفاده قرار می گیرد، CMake برای کنترل فرایند کامپایل نرم افزار با استفاده از پلتفرم ساده و فایل پیکربندی مستقل کامپایلر مورد استفاده قرار میگیرد. CMake به تولید Makefile و workspaces  پرداخته که می توانید آنها را در محیط کامپایلر مورد نظر استفاده کنید.

چرا CMake ?

به دلیل اینک استفاده از CMake نسبت به استاندارد Makefile محسوس تر و قابل درک می باشد. اجرای موارد مبتدی و متدوال بسیار راحت بوده و موارد سخت تر نیز قابل دستیابی می باشند.

 برای نشان دادن CMake چندین کد ساده در فایل زیر قرار داده شده است، همه ی این فایل ها را در دایرکتوری مد نظر خود قرار دهید (دانلود :: cmake.zip  | cmake.tgz):

 توسط نرم افزار فشرده سازی فایل ها را باز کرده و در پوشه دلخواه CMake استخراج کنید.

ls
CMakeLists.txt w01-cpp

بررسی CMakeLists.txt:

CMake توسط دستورالعمل های نوشته شده در فایل های CMakeLists.txt کنترل شده است، هر دایرکتوری در پروژه ی شما بایستی حاوی یک فایل CMakeLists.txt باشد. آنچه که در مورد CMake بهتر است بدانیم، این است که فایل های CMakeLists.txt در دایرکتوری فرعی مجموعه خواصی را از دایرکتوری های والدین خود (دایرکتوری های بالاتر) به ارث می برند، این وراثت باعث می شود که از تکرار کد اضافی پرهیز شود. در پروژه ی مثال تنها دایرکتوری فرعی w01-cpp است، فایل CMakeLists.txt  برای دایرکتوری بالایی CMake کاملا ساده است، زیرا که فقط چند ویژگی کلیدی را نمایش میدهد:

cmake_minimum_required(VERSION 2.6)
project(CMAKEDEMO)

#There are lots of scripts with cmake
#for finding external libraries.
#see /usr/local/share/cmake-2.6/Modules/Find*.cmake for more examples
find_package(GLUT)
find_package(OpenGL)

set(CMAKE_CXX_FLAGS "-g -Wall")
add_subdirectory(w01-cpp)

نمونه ی برنامه ی آورده شده شامل کدی است که نیازمند کتابخانه های خارجی OpenGL برای گرافیک است. در نمونه ی پیکربندی Makefile احتمالا نیازمند تعیین مکان فایل های هدر OpenGL است، به عنوان نمونه :

-I/usr/local/include

و همچنین کتابخانه هایی همچون :

-lGL -lGLU -lglut

و دایرکتوری قرار گیری کتابخانه ها بایستی تعریف شود.

دایرکتوری فایل های هدر و کتابخانه ها احتمالا در هر پیکربندی و نصب از پلتفرمی به پلتفرم دیگر متغییر خواهد بود ولی معمولا بعضی از مسیر های استاندارد برای جستجو وجود دارد و CMake به صورت اتوماتیک توسط ماکروی find_package به این جستجو اقدام می کند. بنابرین find_package(GLUT)l و  find_package(OpenGL)l موقعیت قرار گیری فایل های هدر و کتابخانه ها را جستجو می کند، با فراخوانی کتابخانه هایی که بیشتر متداولند،می توان آنها را به پروژه OpenGL لینک کرد. CMake جستجوی بیشتر پکیج ها را پشتیبانی می کند میتوانید به  usr/local/share/cmake-2.6/Modules/Find*.cmake مراجعه تا مثال های بیشتر ببینید.برای استفاده از یکی از این اسکریپت ها،اگر اسکریپت CMake به صورت FindPKGname.cmake نام گذاری شده باشد به صورت  find_package(PKGname)l استفاده شود.

برای یافتن کتابخانه های خارجی بیشتر و یا ساخت ماکروی یافتن پکیج شخصی خود، به آدرس KitWare wiki مراجعه کنید.

 

دانلود :: cmake.zip  | cmake.tgz

منبع :: cs.swarthmore.edu | KitWare wiki

کانال تلگرام بیر رباتیک

درباره Ahrovani Hadi

مشاهده بیشتر

arducopter simulation

شبیه سازی اتوپایلوت و تشخیص کد های Aruco

ویدئوی پیوست شده شبیه سازی اتوپایلوت ardupilot با شبیه ساز gazebo را نشان میدهد. این …

دیدگاه بگذارید

اولین نفری باشید که دیدگاه میگذارد

با خبر سازی از
avatar

wpDiscuz