کدنگار

وبلاگ شخصی-آموزشی علی رشیدی

کدنگار

وبلاگ شخصی-آموزشی علی رشیدی

طبقه بندی موضوعی
پیوندهای روزانه
پیوندها

آموزش CMake - قسمت دوم

پنجشنبه, ۱۹ اسفند ۱۳۹۵، ۰۸:۱۱ ب.ظ

با درود.

در این قسمت با کتابخانه های اشتراکی یا دینامیکی (shared library) آشنا میشوید و یاد میگیرید که چگونه یک پروژه که فقط شامل یک کتابخانه است را با CMake بسازید.

کتابخانه های اشتراکی نوعی کتابخانه هستند که نه در زمان کامپایل بلکه هنگام اجرای برنامه، توسط برنامه فراخوانی میشوند. این یک مزیت بزرگ نسبت به نوع دیگر کتابخانه ها (static) است، چرا که کد آن کتابخانه ها هنگام کامپایل به برنامه شما لینک میشود و نتیجه آن کند بودن مراحل ساخت است.
مزیت دیگر: امکان ایجاد تغییرات در کتابخانه های اشتراکی در نسخه های بعدی برنامه ساده تر از کتابخانه های استاتیک است.
یک کتابخانه اشتراکی پس از ساخت فایلی با پسوند so ایجاد میکند، که البته برای اینکه برنامه ای بتواند آنرا فراخوانی کند باید در محل استاندارد (/usr/lib در اکثر توزیع های لینوکسی و سیستم های شبه یونیکس) کپی (نصب) شود.

کتابخانه ساده ما (SimpleMath) وظیفه مهم انجام عملیات چهارگانه ریاضی را بر عهده دارد. پس از دانلود سورس پروژه در انتهای مطلب و استخراج آن به فایل CMakeLists.txt دقت کنید:
cmake_minimum_required(VERSION 3.0.0)
project (Shared_Library_Test)
set(CMAKE_BUILD_TYPE Release)
include_directories (include)
file(GLOB SOURCES "src/*.cpp")
add_library (simpleMath SHARED ${SOURCES})
install (TARGETS simpleMath DESTINATION /usr/lib)
همه چیز تقریبا شبیه قسمت قبلی است به جز اینکه:

۱) خط زیر:
set(CMAKE_BUILD_TYPE Release)
مشخص میکند که برنامه ساخته شده در وضعیت انتشار (Release) قرار دارد. یعنی ساخت پایانی. بعضی اوقات ما آنرا به دیباگ تغییر میدهیم، هنگامی که برنامه در مرحله تست و عیب یابی قرار دارد.

۲) خط زیر:
add_library (simpleMath SHARED ${SOURCES})
میگوید که کتابخانه simpleMath به پروژه اضافه شده که از نوع اشتراکی (SHARED) است و سورس آن در متغیر $SOURCES قرار دارد.

۳) خط آخر، که اختیاری است. در این صورت بعد از اجرای دستور make، میتوانید sudo make install را اجرا کنید تا کتابخانه در محل تعیین شده (usr/lib/) نصب شود.

ساخت
برای ساخت:
cd build
cmake ..
make
sudo make instal #(Optional)

  • موافقین ۱ مخالفین ۰
  • ۹۵/۱۲/۱۹
  • ۱۵۴۱ نمایش
  • علی رشیدی

cmake

آموزش cmake

نظرات (۳)

استفاده کردیم . خیلی ممنون (:

سلام.

باتشکر از راهنمایی و آموزش CMake 

CMake را از کجا دانلود کنیم؟ و دستوراتی که گفته اید کجا باید اجرا کنیم؟ مثلا همون دستور 

sudo make instal #(Optional)
 

ممنون

پاسخ:
سلام،
راهنمایی در خصوص لینوکس است. شما باید CMake را از مخازن توزیع خودتان نصب کنید (روی خیلی از توزیع‌ها به صورت پیش‌فرض نصب هست).
و دستوراتی که نوشته شده را باید در ترمینال، در محل پروژه ایجاد کنید (در این محل باید پوشه‌ای به نام build ایجاد کنید و سپس به اجرای دستورات بپردازید)

البته اینو بگم که اول برام این شبهه ایجاد شد که که قراره  simple amth یه لایبرری داینامیک بشه برا main و ما هر دورو قراره اینجا بسازیم لیکن این بار main از این لایبرری استفاده میکنه

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی