جستجو در تالارهای گفتگو
در حال نمایش نتایج برای برچسب های 'cmake'.
9 نتیجه پیدا شد
-
با سلام بنده فایل هایی در cmake ایجاد کردم و در visual studio ساخت و نصب کردم، اما هنگام اجرا کد، نمی تونه فایل ها رو باز کنه. در دایرکتوری هم مسیر فایل ها ایجاد شده ولی این خطا رو میده: " " cannot open source file . چطور میشه این خطا رو رفع کرد؟
-
با سلام و وقت بخیر به کمک نرم افزارCmake، کتابخانه های مربوطه ایجاد شدند. در visual studio هنگام RUN_TESTS_PARALLEL, build با این خطا مواجه شدم: Error MSB6006 "cmd.exe" exited with code 8. RUN_TESTS_PARALLEL C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppCommon.targets 171 چطور می توانم این خطا را برطرف کنم؟
-
با سلام و وقت بخیر من با نرم افزار cmake3.19.2 فایل هایی را ایجاد کردم و به کمک visual studio ورژن 2015، کتابخانه های مربوطه را ساخت و نصب می کنم. ولی در visual studio این خطا ها رو نشون میده: LINK : fatal error LNK1104: cannot open file '..\..\..\RelWithDebInfo\osimMoco.lib' C:\spdlog\include\spdlog/fmt/bundled/core.h(1624): error C2338: passing views as lvalues is disallowed (compiling source file C:\opensim-core-master\OpenSim\Moco\MocoParameter.cpp) فایل osimMoco.lib موجود هست حتی در قسمت properties مسیر این فایل رو اضافه کردم ولی باز هم خطا میده. ممنون میشم راهنمایی بفرمایید، چطور میشه این خطاها رو رفع کرد؟
-
کامبیز اسدزاده یک موضوع را ارسال کرد در <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 مورد دیگر)
-
سلام من میخوام کتابخونه tz رو توی پروژه کیوت استفاده بکنم ولی لینک ارور میده .ظاهرا باید از cmake استفاده کرد اما بلد نیستم. منابع خوب و سریعی هم اگر دارید معرفی کنید . تشکر
- 1 پاسخ
-
- link error
- external libraries
-
(و 2 مورد دیگر)
برچسب زده شده با :
-
نیاز دارم که برقرار بودن ارتباط به اینترنت در Build System پروژه بررسی کنم، از این رو با استفاده از تابع file یک آزمایشی میکنم: file( DOWNLOAD www.google.com ${CMAKE_SOURCE_DIR}/Test STATUS ERROR_CODE ) و خروجی در متغیر ERROR_CODE به حاوی شمارهٔ کد و متن خطا بهصورت یک لیست ذخیره میشود : امّا نمیتوانم با استفاده از تابع list و ورودی GET اقدام به دریافت یک مقدار بر اساس اندیس آن میکنم: list(GET ${ERROR_CODE} 0 MESSAGE_OUT) message(${MESSAGE_OUT}) امّا خروجی NOTFOUND میدهد، به اینصورت نیز بررسی کردهام: set(WITHOUT_ERROR "No error") foreach(VAR ${ERROR_CODE}) if(${VAR} EQUAL ${WITHOUT_ERROR}) message("Ghasem is here without error.") endif() endforeach() امّا باز خروجیای حاصل نشد. به چه صورت میتوان این مشکل را حل کرد ؟
-
سلام من یک پروژه 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 معرفی کنم .
-
کامبیز اسدزاده یک موضوع را ارسال کرد در <span class="ipsBadge ipsBadge_pill" style="background-color: #2cdb89; color: #000000;" >کتابخانه کیوت (Qt)</span>
سلام، همانطور که میدانید شرکت Qt از سه نوع سیستم ساخت مختلف برای برنامه های Qt پشتیبانی میکند. برای کاربران کیوت، در حال حاضر qmake به طور گسترده استفاده میشود. CMake در حال محبوب شدن بوده و واضح است که به خوبی مورد استقبال قرار گرفته است. جایگاه سوم Qbs، با پذیرش قابل توجهی کوچکتر و کم اهمیت تر است (هرچند شرکت کیوت قبلاً اعلام کرده بود که این ابزار در نسخهی ۶ کیوت به عنوان ابزار پیشفرض) ارائه خواهد شد. در یک نتیجه از آمار پرسش و سوال در مورد ابزار Qbs مشتریان این کمپانی به این نتیجه رسیدهاند که مشتریان در آینده CMake و qmake را بر qbs ترجیح خواهند داد. بنابراین برای توسعهی هرچه بیشتر دو ابزار قبلی از جمله CMake این شرکت تصمیم گرفته است تا منابع مرتبط با ابزار Qbs را از بین برده تا بتوانید به این صورت فرصت بهتری را برای افزایش کیفیت پشتیبانی از CMake را فراهم سازد. ابزار Qbs تا پایان سال ۲۰۱۹ همراه با نسخهی ۴.۹ کیوت کریتور پشتیبانی خواهد شد. طبق گفتهی این کمپانی ابزار کیوبس تحت مجوزهای تجاری و منبع باز است، بنابراین هرگونه حمایت جهت توسعهی زیرساختهای آن را مورد حمایت نیز قرار میدهند. به هر حال حذف ان ابزار این اجازه را برای تیم پشتیبانی خواهد داد ت به طور قابل توجهی پشتیبانی در مورد CMake بهبود یابد.