এই ত্রুটি বার্তা
CMake Error at ... (project):
No CMAKE_C_COMPILER could be found.
-- Configuring incomplete, errors occurred!
See also ".../CMakeFiles/CMakeOutput.log".
See also ".../CMakeFiles/CMakeError.log".
বা
CMake Error: your CXX compiler: "CMAKE_CXX_COMPILER-NOTFOUND" was not found.
Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
...
কেবলমাত্র এর অর্থ হ'ল সিএমকে আপনার সাধারণ পরীক্ষার প্রোগ্রামটি সংকলন করতে সি / সিএক্সএক্স সংকলকটি খুঁজে পেতে অক্ষম ছিল (আপনার বিল্ডিংয়ের পরিবেশ সনাক্ত করার সময় সিএমকে চেষ্টা করে এমন প্রথম জিনিসগুলির মধ্যে একটি)।
আপনার সমস্যার সন্ধানের পদক্ষেপগুলি আপনি যে বিল্ড পরিবেশের উত্পন্ন করতে চান তার উপর নির্ভরশীল। নিম্নলিখিত টিউটোরিয়ালগুলি স্ট্যাক ওভারফ্লো এবং মাইক্রোসফ্ট উইন্ডোজ 7/8/10 এবং উবুন্টু 14.04-তে সিএমকে-র সাথে আমার নিজের অভিজ্ঞতার কয়েকটি উত্তরগুলির সংগ্রহ।
পূর্বশর্ত
- আপনি সংকলক / আইডিই ইনস্টল করেছেন এবং এটি একবারে অন্য কোনও প্রোগ্রাম সংকলন করতে সক্ষম হয়েছিল (সরাসরি সিএমকে ছাড়াই)
- আপনার কাছে সর্বশেষ সিএমকে সংস্করণ রয়েছে
- আপনি যে ড্রাইভে সিএমকে আপনার বিল্ড পরিবেশ তৈরি করতে চান তাতে আপনার অ্যাক্সেসের অধিকার রয়েছে
আপনার একটি পরিষ্কার বিল্ড ডিরেক্টরি রয়েছে (কারণ সিএমকে শেষ চেষ্টা থেকে ক্যাশে জিনিসগুলি করে) যেমন আপনার উত্স গাছের উপ-ডিরেক্টরি হিসাবে
উইন্ডোজ cmd.exe
> rmdir /s /q VS2015
> mkdir VS2015
> cd VS2015
বাশ শেল
$ rm -rf MSYS
$ mkdir MSYS
$ cd MSYS
এবং নিশ্চিত হয়ে নিন যে আপনার নতুন কমান্ড শেলটি আপনার নতুন নির্মিত বাইনারি আউটপুট ডিরেক্টরিকে নির্দেশ করে।
আপনি চেষ্টা করতে পারেন এমন সাধারণ জিনিস
সিএমকে কি কোনও / আপনার ডিফল্ট সংকলক খুঁজে পেতে এবং চালাতে সক্ষম? জেনারেটর না দিয়ে চালান
> cmake ..
-- Building for: Visual Studio 14 2015
...
নিখুঁত যদি এটি জেনারেটরটি সঠিকভাবে ব্যবহার করতে নির্ধারিত করে - যেমন এখানে Visual Studio 14 2015
এটি আসলে কী ব্যর্থ হয়েছিল?
পূর্ববর্তী বিল্ড আউটপুট ডিরেক্টরিতে CMakeFiles\CMakeError.log
কোনও ত্রুটি বার্তাটি দেখুন যা আপনাকে বোঝায় বা CMakeFiles\[Version]\CompilerIdC
| CompilerIdCXX
কমান্ড লাইন থেকে সরাসরি (ত্রুটি লগ হিসাবে পাওয়া যায়)।
সিএমকে ভিজ্যুয়াল স্টুডিও খুঁজে পাচ্ছেন না
সঠিক জেনারেটর সংস্করণ নির্বাচন করার চেষ্টা করুন :
> cmake --help
> cmake -G "Visual Studio 14 2015" ..
যদি এটি সহায়তা না করে তবে ভিজ্যুয়াল স্টুডিও পরিবেশের ভেরিয়েবলগুলি প্রথমে সেট করার চেষ্টা করুন (পথটি পৃথক হতে পারে):
> "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
> cmake ..
বা Developer Command Prompt for VS2015
আপনার উইন্ডোজ স্টার্ট মেনুতে শর্ট-কাটটি ব্যবহার করুন All Programs
/ Visual Studio 2015
/ Visual Studio Tools
( ইঙ্গিতটির জন্য @ অ্যান্টওয়েনে ধন্যবাদ )।
পটভূমি : সিএমকে সমস্ত ভিজ্যুয়াল স্টুডিও রিলিজ এবং স্বাদগুলিকে সমর্থন করে (এক্সপ্রেস, সম্প্রদায়, পেশাদার, প্রিমিয়াম, পরীক্ষা, দল, উদ্যোগ, চূড়ান্ত ইত্যাদি)। সংকলকটির অবস্থান নির্ধারণ করতে এটি রেজিস্ট্রি (উদাহরণস্বরূপ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[Version];InstallDir
), সিস্টেম এনভায়রনমেন্ট ভেরিয়েবল এবং - অন্যগুলির মধ্যে কারওর সাথে কিছু না এলে - স্পষ্টভাবে সংকলককে কল করার চেষ্টা করুন searching
সিএমকে জিসিসি (মিনজিডাব্লু / এমএসএস) খুঁজে পাচ্ছেন না
আপনি এমএসএস bash
শেলটি দিয়ে শুরু করেন msys.bat
এবং সরাসরি কল করার চেষ্টা করেনgcc
$ gcc
gcc.exe: fatal error: no input files
compilation terminated.
এখানে এটি খুঁজে পেয়েছি gcc
এবং অভিযোগ করছে যে আমি এটির সাথে কাজ করার কোনও প্যারামিটার দিইনি।
সুতরাং নিম্নলিখিতটি কাজ করা উচিত:
$ cmake -G "MSYS Makefiles" ..
-- The CXX compiler identification is GNU 4.8.1
...
$ make
যদি export PATH=...
আপনার সংকলকগুলির পথ জুড়তে জিসিসিকে কল পাওয়া যায় নি (দেখুন সিএমকে স্ক্রিপ্টে PATH পরিবেশ পরিবর্তনশীল কীভাবে সেট করবেন? ) এবং আবার চেষ্টা করুন।
যদি এটি এখনও কাজ না করে তবে CXX
সরাসরি রফতানি করে সংকলক পথটি সেট করার চেষ্টা করুন (পাথ আলাদা হতে পারে)
$ export CC=/c/MinGW/bin/gcc.exe
$ export CXX=/c/MinGW/bin/g++.exe
$ cmake -G "MinGW Makefiles" ..
-- The CXX compiler identification is GNU 4.8.1
...
$ mingw32-make
আরও তথ্যের জন্য দেখুন কীভাবে সিএমকেকের জন্য নতুন জিসিসির পথ নির্দিষ্ট করা যায়
দ্রষ্টব্য : "MinGW Makefiles" জেনারেটর ব্যবহার করার সময় আপনাকে mingw32-make
MinGW এর সাথে বিতরণ করা প্রোগ্রামটি ব্যবহার করতে হবে
এখনও কাজ করছে না? এটা বিরক্তিকর. অনুগ্রহ করে নিশ্চিত করুন যে সংকলকটি সেখানে রয়েছে এবং এতে সম্পাদনযোগ্য অধিকার রয়েছে (উপরের শর্তাবলী অধ্যায়টিও দেখুন)।
অন্যথায় সিএমকের শেষ অবলম্বনটি হ'ল নিজেই কোনও সংকলক অনুসন্ধান না করে সিএমকের অভ্যন্তরীণ ভেরিয়েবলগুলি সরাসরি সেট করুন
$ cmake -DCMAKE_C_COMPILER=/c/MinGW/bin/gcc.exe -DCMAKE_CXX_COMPILER=/c/MinGW/bin/g++.exe ..
আরও তথ্যের জন্য দেখুন ক্যামকে সম্মান দেয় না -D CMAKE_CXX_COMPILER = g ++ এবং Cmake ত্রুটি সংস্থাপক সেট করে
বিকল্পভাবে সেই পরিবর্তনগুলি cmake-gui.exe
উইন্ডোজের মাধ্যমেও সেট করা যেতে পারে be দেখুন কুমেক সংকলক খুঁজে পাচ্ছে না
পটভূমি : ভিজ্যুয়াল স্টুডিওর মতোই। সিএমকে সমস্ত ধরণের জিসিসির স্বাদকে সমর্থন করে। এটি পরিবেশের ভেরিয়েবলগুলি (সিসি, স্যাক্সএক্সএক্স ইত্যাদি) অনুসন্ধান করে বা কেবল সংকলককে কল করার চেষ্টা করে। এটা উপরন্তু কোনো উপসর্গ (যখন নির্ণয় করতে পারবে ক্রস সংকলন ) এবং চেষ্টা গনুহ কম্পাইলার টুলচেইন সব binutils এটি যোগ করতে ( ar
, ranlib
, strip
, ld
, nm
, objdump
, এবং objcopy
)।