جستجو در تالارهای گفتگو
در حال نمایش نتایج برای برچسب های 'سیمیک'.
4 نتیجه پیدا شد
-
با سلام بنده فایل هایی در cmake ایجاد کردم و در visual studio ساخت و نصب کردم، اما هنگام اجرا کد، نمی تونه فایل ها رو باز کنه. در دایرکتوری هم مسیر فایل ها ایجاد شده ولی این خطا رو میده: " " cannot open source file . چطور میشه این خطا رو رفع کرد؟
-
کامبیز اسدزاده یک موضوع را ارسال کرد در <span class="ipsBadge ipsBadge_pill" style="background-color: #4f67ff; color: #ffffff;" >ابزار CMake</span>
بارها شده است که شما به این فکر کنید برنامهای بنویسید که تحت کامپایلرها و سیستمعاملهای مختلف اجرا شود. بنابراین شما باید از ویژگیهای خاص این روش مراقب باشید چرا که هر سیستمعامل نسبت به خود ساختار و عملکرد متفاوتی را دارد. برای مثال بین رابطهای برنامهنویسی Windows و لینوکس تفاوت بسیار است. یا نوع سیستمعاملهای FreeBSD یا Linux تفاوتهای بسیاری دارند که نباید کدهای شما در همهٔ آنها یکسان باشد. در این بخش من قصد دارم در رابطه با برخی از پرکاربردترین متغیرهای CMake اشارهای داشته باشم. بنابراین متغیرهای زیر را در نظر بگیرید: متغیر UNIX: تمامی سیستمعاملهای شبه-یونیکس مانند macOS را شامل میشود. درواقع زمانی true است که پلتفرم آن مک یا شبه-یونیکس باشد. متغیر WIN32: زمانی true خواهد بود که پلتفرم مقصد و توسعه ویندوز باشد. متغیر MINGW: پلتفرم ویندوز را بر پایهٔ MinGW شامل میشود و زمانی true خواهد بود که پلتفرم ویندوز همراه با کامپایلر Mingw پیکربندی شده باشد. متغیر MSVC: زمانی برابر true خواهد بود که پلتفرم ویندوز همراه با کامپایلر MSVC پیکربندی شده باشد. برای مثال اگر بخواهیم کاری انجام دهیم که صرفاً در پلتفرم ویندوز اعمال شود، باید آن را در دامنهٔ چنین شرطی قرار دهیم: if(WIN32) # for Windows operating system in general endif() شما میتوانید در بین این کد متغیری تعریف کنید، مسیر کتابخانهای را شناسایی کنید و یا هر کاری که نیاز است مختص پلتفرم ویندوز اعمال شود را تنظیم نمایید. مثال برای شناسایی محصولات شرکت اپل، تحتِ سیستمعاملهای macOS، iOS و حتی watchOS , tvOS if(APPLE) # for MacOS X or iOS, watchOS, tvOS (since 3.10.3) endif() مثال برای بررسی نوع سیستمعاملهای یونیکس و لینوکس به غیر از محصولات اپل if(UNIX AND NOT APPLE) # for Linux, BSD, Solaris, Minix endif() یک شرط نسبتاً کاملتر به صورت زیر خواهد بود: if(APPLE) # for MacOS X or iOS, watchOS, tvOS (since 3.10.3) MESSAGE("Current platform is macOS!") elseif(Linux AND NOT APPLE) # for Linux and not Unix base such as macOS! MESSAGE("Current platform is Linux!") elseif(WIN32) # for Windows only! MESSAGE("Current platform is Windows!") elseif(UNIX AND NOT APPLE) # for Linux, Unix base Free-BSD, Solaris, Minix MESSAGE("Current platform is Unix!") elseif(ANDROID) # for Linux base, Android only! MESSAGE("Current platform is Android!") endif() مثال برای تشخیص بر اساس نوع کامپایلر، مختص پلتفرم ویندوز تحت Mingw، MSys و MSVC if(MSVC OR MSYS OR MINGW) # for detecting Windows compilers endif() روشهای دیگری نیز برای مقایسه صریح دیگری وجود دارد، برای مثال عملگر STREQUAL میتواند گزینهٔ خوبی در تشخیص و اعمال شرط باشد. مثل مقایسهای، در صورتی که نوع کامپایلر Clang باشد یا گزینههای دیگر: if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") # using Clang elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") # using GCC elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel") # using Intel C++ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") # using Visual Studio C++ endif() در این صورت میتوان بر اساس تشخیص شناسهٔ کامپایلر عملیات مورد نظر را اعمال کرد. همچنین میتوان از عملگر MATCHES در بررسی شرط استفاده کرد: if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") MESSAGE("MSVC") endif() این مقاله ادامه خواهد داشت...-
- بررسی پلتفرم
- سیمیک
- (و 4 مورد دیگر)
-
سلام من یک پروژه open source دانلود کردم، شبیه سازی یک مقاله هست باید اجرا کنم و خروجی هاش رو ببینم به زبان C نوشته شده اما با Cmake ساخته شده که تقریبا فهمیدم Cmake چیه اما نتونستم برنامه رو توی Visual Studio اجرا کنم. Cmake رو نصب و خروجی رو برای Visual studio 2017 ساختم اما وقتی اجرا میکنم پیام out of date میده، در جواب build میزنم yes اما faild میشه، No میزنم اجرا نمیشه از داخل خود Visual Studio هم که توی سرچ هام فهمیدم میشه مستقیما پوشه ای که cmakeList.txt داره رو open کرد، این کارو کردم اما اون بالا کنار فلش سبز رنگ نوشته select startup item و روی current document هست و گزینه دیگه ای نداره و قابلیت اجرا نداره تصویر فایل های این پروژه رو ضمیمه کردم نمیدونم باید چیکار کنم، ممنون میشم راهنمایی کنید.
-
سلام خسته نباشید . من می خواستم در مورد روش کلی استفاده از cmake در کامپایل کردن پروژه سی پلاس پلاس بدونم . من تو اینترنت خیلی دنبالش گشتم روش های مختلفی دیدم که استفاده می شد . اما هنوز روش کلی رو متوجه نشدم که بشه توی همه پروژه ها با ساختار پروژه مختلف استفاده کرد . مثلا اگه بخوام یک کتابخونه ای مثل sqlite3.h به پروژه اضافه کنم چطوری باید این کتابخونه رو در CmakeLists.txt معرفی کنم .