C کیسے بنا تا کہ ونڈوز، میکو اوکس کے دور میں دوبارہ شروع ہو اور لینکس کو پورٹل کوڈ سے زیادہ درکار ہو—یہ لازم کرتا ہے کہ وہ عمارت جو کہ ہر پلیٹ فارم کے اندر موجود ہو، اس کے اندر حل پذیری کا انتظام کر سکے،

کیا چیز ہے ؟

CUM ہے Meta-sound system: یہ براہ راست کوڈ نہیں بلکہ دوسرے تعمیری نظام کے لیے فائل تخلیق کرتا ہے آپ میں اپنے پروجیکٹ کو ڈومین زبان استعمال کرتے ہوئے بیان کرتے ہیں. پھر ان فائلوں کو ترتیب دیں اور نشانہ پلیٹ فارم کے لیے موزوں ہدایات نکال دیں۔

سی میک کی کلیدی خصوصیات میں شامل ہیں:

  • Platform-agnostic Stax: ایک ہی [1] ایک ہی [[FLT] پر کام کرتا ہے جو Unix, Venvers, and MacOS پر کرتا ہے۔
  • Multiple generators: حمایت کرنے والے، نینجا، ویژیول سٹوڈیو، ایکس کوڈ اور دیگر۔
  • [FLT-of-sources: ] کے رکن کو سرچ کوڈ سے الگ بناتے ہیں۔
  • Extensibility: مدورائی، کام اور مکرر کو دوبارہ قابلِ تعمیر منطقہ بنانے کی اجازت دیتا ہے۔
  • Package انکشاف: [1] [FLT] تلاش کرنے والوں نے نصب شدہ لائبریریوں اور ہیڈ کوارٹرز کی تلاش کی۔
  • ] 'کے ساتھ integration 'ٹی/CD: 'آپر لائن میں کام کرنے والے کام.

سی اور سی++ ماحولیات میں کراس پلیٹ فارم کی ترقی کے لیے سی یو ایڈو طیارے بن گئے ہیں، جس کے ذریعے منصوبوں میں مختلف طور پر LVM، MySQL اور پورے KDE ڈیسک ٹاپ ماحول کے طور پر استعمال کیا جاتا ہے۔

کراس-پلاگ فارم سیریز کے لیے CUC کا استعمال کرنے کے فوائد

CUECUC processing portive کے علاوہ کئی کنکریٹ فوائد بھی لاتا ہے:

  • سنگل ماخذ حق: لکھ کر ہر پلیٹ فارم کے لیے منطقی اور فائل بنائیں، جسے وہ نازک شیل اسکرپٹ یا پلیٹ فارم کی سہولتوں کے لیے اپلوڈ کرتا ہے۔
  • [DDE indET:1]] ٹیمیں ویژیول سٹوڈیو، سیریز، ایکس کوڈ یا وی ایس کوڈ میں ایک ہی کام کر سکتی ہیں۔
  • موڈلر پروجیکٹ ترکیب : استعمال کریں تاکہ بڑے منصوبوں کو اپنے ہی خامرے کے ساتھ ملا کر تقسیم کیا جا سکے۔
  • Conditional منطقہ : [1] درخواستی پلیٹ فارم پرفارمنس، ماخذ فائل یا لائبریری صرف ضرورت کے وقت جب ضرورت پوری کرنے کے بغیر ہی مکمل ڈھانچے کو دبا دیا جائے۔
  • [Autmoted serling: [1] اور ، تیسرے فریقین لائبریریوں کا استعمال آسان ہے۔
  • اصلاحات اور تنسیخ: Crescres and CPackssssssssss are serves are servation struction and scollagements.
  • تعمیری عمل :] کیچ کے ساتھ مل کر نیاگرا ایجنٹ دوبارہ تعمیر کرنے میں کمی کرتا ہے۔
  • عملی کمیونٹی: [frescial] [fficial Cons اور ایک ترقی پسند تحریک برائے ریاضیات اور فلکیات کے بانی۔

شروع میں یہ دیکھنا : سی‌او پروجیکٹ کیلئے تیار کرنا

یہ حصہ تنصیب سے شروع ہوکر تین بڑے پلیٹ‌فارموں پر جمع ایکس‌کیس‌اپ تک مکمل کام کے ذریعے چلتا ہے ۔

1۔ سیٹ انسٹال کریں

تازہ ترین binary کو سے ڈاؤن لوڈ کریں[FLT:Ckaking.org یا آپ کی نظامت کے پیکج مینیجر کا استعمال:

  • لینکس (ڈیبیانا/اوبلانتو): ]
  • ]]]]]مکوس (Homebrew): ] [حوالہ درکار]۔
  • Windows: چلائیں اور " سسٹم میں ترمیم کرنا" کو یقینی بنایا گیا ہے۔

کے ساتھ متعین کردہ نسخہ 3.10 یا اعلیٰ درجہ کی سفارش یہاں زیر بحث آنے والی خصوصیات کے لیے کی جاتی ہے۔

2۔ ایک منیمال کی میکیلیٹس۔کٹکٹسٹ لکھیں۔

آپ کے پروجیکٹ روٹ میں فائل بناو ۔ ذیل میں ایک واحد ماخذ سی پروجیکٹ کے لیے ایک کم مثال ہے:

cmake_minimum_required(VERSION 3.10)
project(HelloWorld C)

add_executable(hello main.c)

توڑ پھوڑ:

  • کم از کم CMMME ورژن قائم کرتا ہے. یہ پالیسی کی تجدید بھی کر سکتا ہے جو برتاؤ کو بہتر بناتی ہے۔
  • منصوبے کا نام اور زبان کا تعین کرتا ہے۔] کو C+ County کے لیے اسکیلنگ سے اسکیم کو روکتا ہے۔
  • ] کو چی میک کہتا ہے کہ سے ہدف بنایا جانا چاہیے۔

ایک تھوڑا زیادہ حقیقتی مثال میں ہیکر جھنڈ اور ایک سر صرف ایک ہی گیند شامل ہے:

cmake_minimum_required(VERSION 3.15)
project(Calculator C)

set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)

add_executable(calc main.c parser.c)
target_include_directories(calc PRIVATE include)

یہاں مزید کو کوآپر کے ہیڈ کوچ کے لیے صرف [FLT:AT] ہدف کے لیے شامل کیا جاتا ہے۔

3۔ جینیریٹا فائل تعمیر کرنا۔

ایک عمارت کی ڈائریکٹری بنائیں اور سی میک چلاتے رہیں:

mkdir build
cd build
cmake ..

لینکس/ماکوس پر یہ ڈیٹنگ کے ذریعے مُوِفِل پیدا کرتا ہے. ویژیول سٹوڈیو نصب کے ساتھ ونڈوز پر یہ فائل پیدا کرتا ہے. مختلف ڈرہم سے صارف طلب کرنے کے لیے، استعمال .

نسل کے بعد، آپ ضمنی وقت پر اختیارات عبور کر سکتے ہیں:

cmake .. -DCMAKE_BUILD_TYPE=Release -DMY_FEATURE=ON

یہ متغیرات میں محفوظ ہیں اور بعد میں چلنے والی پر دوبارہ استعمال ہوتے ہیں۔

۴ : منصوبہ بنائیں

ایک بار جب فائلیں تیار کی جاتی ہیں، تو، Missota پیدا کیا جاتا ہے:

  • میکنگ/ننجا: [FLT] (FLT:27] تمام پلیٹ فارمز اور پروڈیوسرز پر کام کرتا ہے۔
  • ویاسال سٹوڈیو: ]
  • [Xcode:]

کمانڈ صلیب پلیٹ فارم ہے اور پلیٹ فارم کی نمازوں سے پرہیز کرنے کے لئے استعمال کریں تاکہ تعمیر تیز ہو سکے۔

حقیقی-ورلڈ پراجیکٹ کے لیے ایییییییی سی میک ٹیکنکز

بنیادی چیزوں کے علاوہ ، سی‌کو کو ایسی خصوصیات پیش کرتا ہے جو بڑی یا زیادہ پیچیدہ بنانے کے قابل ہوتی ہیں ۔

ڈی این ایس این اے پرو فا ئل

کمانڈ تلاش کرنے والوں نے نصب شدہ لائبریریوں کو قائم کیا اور ان کے لیے تبدیل شدہ اقدامات طے کیے جن میں راستوں اور لائبریری فائل شامل ہیں۔ جدید CUM صفائی کے لیے حوصلہ افزائی کرتا ہے۔

find_package(SDL2 REQUIRED)
target_link_libraries(my_app PRIVATE SDL2::SDL2)

اس سے مراد خود کار طور پر لی گئی ویب سائٹس، کوائلی تشریحات اور لنکس شامل ہیں۔ اگر لائبریری کو سی ایل ایل ٹی فائل فائل فراہم نہیں کیا جائے تو آپ کو اپنی ضرورت کے مطابق کسی بھی فرد کو خط لکھ کر یا اس پر انحصار کرنا ہو سکتا ہے

Glass کے لیے system-اپنی پوری تنصیب کے لیے، ڈاؤن لوڈ اور شمارندیس سرچ کوڈ کو Consent وقت میں ڈاؤن لوڈ کیا گیا ہے:

include(FetchContent)
FetchContent_Declare(
 zlib
 GIT_REPOSITORY https://github.com/madler/zlib.git
 GIT_TAG v1.3
)
FetchContent_MakeAvailable(zlib)
target_link_libraries(my_app PRIVATE zlib)

یہ طریقہ مخصوص نسخوں سے دوبارہ تعمیر کرنے کا یقین رکھتا ہے۔

امتحانات میں شامل کرنا

کو ئيو کو کي مشقوں کے ذریعے آزمايں اور آپ ميں پرو فاضل کي تريم کر نا هے :

enable_testing()

add_executable(test_parser test_parser.c)
target_link_libraries(test_parser PRIVATE parser_lib)

add_test(NAME ParserTest COMMAND test_parser)

آزمائشوں کے ساتھ دوڑ:

ctest --output-on-failure

CTV ٹیسٹ searchs، لیبل، وقت اور متوازن کارکردگی کی مدد کرتا ہے. مزید مجموعی جانچ پڑتال کے لیے، ]] ایک متحدہ مجلس عمل کے ساتھ مل کر ایک دوسرے کے ساتھ ملانے پر غور کریں جیسے

کراس-کیپلنگ

Ccult Smpliies Cast-cpulation by . ایک ٹولچاین فائل کو sculer, Sysrott, and ہدف بنانے کی ترکیب. ] کی طرح فائل بنائیں:

set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set(CMAKE_SYSROOT /path/to/sysroot)

پھر ٹولیاں سے رابطہ قائم کریں:

cmake -DCMAKE_TOOLCHAIN_FILE=arm-cross.cmake ..

CUct خود کار طور پر مخصوص کراس-کومپلر استعمال کرے گا اور لائبریریوں کے لیے syroot کے لیے sroution کے یہ تکنیکیں انفنٹری سسٹمز، موبائل پلیٹ فارمز اور کسی بھی منظرے پر کام کرتی ہیں جہاں سے مشین مشین مختلف ہوتی ہے ہدف مشین سے

نصب کرنا اور پیک بنانا

استعمال کریں [ اپنے منصوبے کو کیسے ترتیب دیا جائے:

install(TARGETS my_app DESTINATION bin)
install(FILES config.ini DESTINATION etc)

CPack پھر پیدا کرنے والے مدیر: DEB, RPM, NS, DMG, but at the on the on the on the :

include(CPack)

بھاگو ایک ڈیبیو پیکج تیار کرنے کے لئے. CPack وارث تمام نظاموں کو منظم کرتا ہے اور تبدیل شدہ قوانین کے ذریعے دستور سازی کی اجازت دیتا ہے ۔

عام پُراسرار اور بہترین مشق

یہاں اکثر مسائل ہیں اور ان سے بچنے کے لئے یہ بھی کہا جاتا ہے :

پُرآسائش : ہارڈ کوڈ پَروں

میں مکمل راستے استعمال کریں . اور کے متعلقہ طور پر استعمال. دوڑنے کے لیے فائل مقامات کے لیے، استعمال کریں تاکہ وہ روٹس کو اُوپر کریں یا تنصیب کے ڈائریکٹروں پر انحصار کریں۔

پُراعتماد : مَیں نے اپنے جذبات کا اظہار کِیا

جینیسٹر اصطلاحات ( وقت پر تجزیہ کرنے، کو وقت پر بنانے کے لئے نہیں بلکہ ان میں سے ہر ایک کو استعمال کرنے کی ترتیبات کے لیے ضروری ہیں:

target_compile_definitions(my_app PRIVATE
 $<$<CONFIG:Debug>:_DEBUG>
)

یہ اضافہ صرف ڈی بگ مصنوعات کے لیے ہے استعمال کرنے سے گریز کریں کیونکہ کثیر الکلیاتی انجینئر (Visal Studio, Xcode) کو کنسور وقت میں قائم نہیں کیا جاتا۔

پُرآسائش : عالمی حکموں پر عمل کرنا

، ، اور سب کو متاثر کرتا ہے. پرفر ہدف کے احکام جیسے ،، اور کے لیے بہتر انفنٹری کے لیے.

پِن : تلاش کرنے کے لئے موزوں سُپر استعمال نہیں کرنا

سیٹ settle]. جدید C میکنگ کے ساتھ، کو ترجیح دے کر پھر اپنے نشانے کو جوڑ کر. اور دستی طور پر منسلک ڈائریکٹرز کو بغیر کسی ضرورت کے۔

کُنَّا

CUMC کو کثیر پلیٹ فارم سی کی ترقی کا چیلنج ، دوبارہ قابل استعمال عمل میں لانے سے آپ کو ایک سیٹ لکھنا ، آئی ڈی کی حمایت اور تمام بڑے آپریٹنگ سسٹمز کے ساتھ مل کر حاصل کرنا ہوگا