c++ - সিএমকেলিস্ট.টেক্সট: 30(প্রকল্প) এ সিএমকে ত্রুটি: কোনও সিএমএকেE_C_COMPILER পাওয়া যায়নি




visual-studio gcc (13)

আমি এ্যাসপ্রাইটের সর্বশেষ সংস্করণটি সংকলন করতে সিএমকে সাথে একটি ভিজ্যুয়াল স্টুডিও সমাধান করার চেষ্টা করছি এবং সিএমকে আমাকে এইটি প্রদান করে চলেছে:

No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.

আমি ইতিমধ্যে জিসিসি ডাউনলোড করেছি এবং আমি Visual Studio 2015 ব্যবহার করছি।

আমি এই টিউটোরিয়াল অনুসরণ করছি:

https://github.com/aseprite/aseprite/blob/master/INSTALL.md


আপনি এটি নিশ্চিত করতে পারেন যে আপনি সুডো ব্যবহারকারী এবং আপনার যে ডিরেক্টরিতে কাজ করছেন সেটিতে আপনার কাছে READ / WRITE অ্যাক্সেস রয়েছে। ওএস এক্সে আমার একইরকম সমস্যা ছিল এবং আমি সুডো মোডে প্রবেশ করে এটি ঠিক করেছি।


আপনি যদি এআরএম খুঁজে পান তবে আপনাকে এআরএমের জন্য সি ++ ইনস্টল করতে হবে যদি চেমেলিস্ট.টেক্সট এ দেখুন

এটি এই প্যাকেজগুলি:

সি ++ এআরএম 64 এর জন্য ইউনিভার্সাল উইন্ডোজ প্ল্যাটফর্ম "প্রয়োজনীয় নয়"

এআরএম "প্রয়োজনীয় নয়" এর জন্য ভিজ্যুয়াল সি ++ কম্পাইলার এবং লাইব্রেরিগুলি

এআরএম 64 এর জন্য ভিজ্যুয়াল সি ++ কম্পাইলার এবং লাইব্রেরি "খুব সম্ভবত প্রয়োজনীয়"

Required for finding Threads on ARM 
enable_language(C) 
enable_language(CXX)

তারপর সমস্যা

কোনও CMAKE_C_COMPILER খুঁজে পাওয়া যায় নি।

কোনও CMAKE_CXX_COMPILER খুঁজে পাওয়া যায় নি।

আপনি ক্ল্যাংয়ের মতো সি সংকলকটি নির্দিষ্ট না করে অদৃশ্য হয়ে যেতে পারে এবং ক্ল্যাং ইনস্টল করা অন্য পক্ষে কাজ করবে।

আপনি যদি এআরএমের জন্য সংকলন না করে থাকেন তবে সক্ষম_ ভাষাগুলির আগে # দিয়ে চ্যামেলিস্টগুলিতে টেক্সট অপসারণ করতে পারেন t


আমার জন্য, যখন উইন্ডোজটি আমার প্রকল্পটি অগভীর পিতামাতার ডিরেক্টরিতে স্থানান্তরিত করে তখন এই সমস্যাটি চলে যায়:

C:\Users\spenc\Desktop\MyProjectDirectory

পরিবর্তে

C:\Users\spenc\Desktop\...\MyProjectDirectory

আমি মনে করি যে সমস্যার উত্সটি ছিল এমএসবাইল্ডের 260 টি অক্ষর পর্যন্ত ফাইলের দৈর্ঘ্যের সীমাবদ্ধতা । এটি মৌলিক সংকলক পরীক্ষার জন্য সিএমকে ত্রুটি সহ ব্যর্থ হওয়ার জন্য কমপাইলারআইডিসিএক্সএক্স.ভিসিএক্সপ্রজ নামে একটি প্রকল্প তৈরি করতে সম্পাদন করে:

C1083: Cannot open source file: 'CMakeCXXCompilerId.cpp'

কারণ ফাইলের পথের দৈর্ঘ্য যেমন

C:\Users\spenc\Desktop\...\MyProjectDirectory\build\CMakeFiles\...\CMakeCXXCompilerId.cpp

MAX_PATH সীমাবদ্ধতা অতিক্রম করে।

সিএমকে তারপরে সিদ্ধান্ত নেওয়া হয়েছে যে কোনও সিএক্সএক্স সংকলক নেই।


আমারও একই সমস্যা ছিল।

আমি আমার মেশিনে dlib ইনস্টল করার চেষ্টা করছিলাম এবং এটি আমাকে এই ত্রুটি দিয়েছে। প্রশ্নের উল্লিখিত টিউটোরিয়ালটি ভিজ্যুয়াল স্টুডিও 2017 ডাউনলোড করার দিকে পরিচালিত করে V আমি ভিএস 2017 আনইনস্টল করে এবং ভিএস 2015 ইনস্টল করে এটি সমাধান করেছি 2015

এই স্ট্যাকওভারফ্লো থ্রেডের মাধ্যমে কেউ ভিএস 2015 ইনস্টল করতে পারে: ভিজ্যুয়াল স্টুডিও সম্প্রদায় সংস্করণ 2015 ডাউনলোড করবেন কীভাবে (2017 নয়)


আমি ভিজ্যুয়াল স্টুডিও 15 2017 ইনস্টল করার পরে এটি আমার সাথে ঘটেছিল।

ভিজুয়াল স্টুডিও 14 2015 এর সি ++ সংকলকটি সমস্যা ছিল না। এটি উইন্ডোজ 10 এসডিকে সমস্যা বলে মনে হয়েছে।

উইন্ডোজ 10 এসডিকে ভিজুয়াল স্টুডিও 14 2015 এ যুক্ত করা আমার জন্য সমস্যার সমাধান করেছে।

সংযুক্ত স্ক্রিনশট দেখুন।


আমি ভিজ্যুয়াল স্টুডিও 2015 আপডেট 2 কে ভিজ্যুয়াল স্টুডিও 2015 আপডেট 3 এ আপডেট করেছি এবং এটি আমার সমস্যার সমাধান করেছে।


এই ত্রুটি বার্তা

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.
...
-- Configuring incomplete, errors occurred!

কেবলমাত্র এর অর্থ হ'ল সিএমকে আপনার সাধারণ পরীক্ষার প্রোগ্রামটি সংকলন করতে সি / সিএক্সএক্স সংকলকটি খুঁজে পেতে অক্ষম ছিল (আপনার বিল্ডিংয়ের পরিবেশ সনাক্ত করার সময় সিএমকে চেষ্টা করে এমন প্রথম জিনিসগুলির মধ্যে একটি)।

আপনার সমস্যার সন্ধানের পদক্ষেপগুলি আপনি যে বিল্ড পরিবেশের উত্পন্ন করতে চান তার উপর নির্ভরশীল। নিম্নলিখিত টিউটোরিয়ালগুলি স্ট্যাক ওভারফ্লো এবং মাইক্রোসফ্ট উইন্ডোজ 7/8/10 এবং উবুন্টু 14.04-তে সিএমকে-এর সাথে আমার নিজের অভিজ্ঞতার কয়েকটি উত্তরগুলির সংগ্রহ।

পূর্বশর্ত

  • আপনি সংকলক / আইডিই ইনস্টল করেছেন এবং এটি একবারে অন্য কোনও প্রোগ্রাম সংকলন করতে সক্ষম হয়েছিল (সরাসরি সিএমকে ছাড়াই)
  • আপনার কাছে সর্বশেষ সিএমকে সংস্করণ রয়েছে
  • আপনি যে ড্রাইভে সিএমকে আপনার বিল্ড পরিবেশ তৈরি করতে চান তাতে আপনার অ্যাক্সেসের অধিকার রয়েছে
  • আপনার একটি পরিষ্কার বিল্ড ডিরেক্টরি আছে (কারণ সিএমকে শেষ চেষ্টা থেকে ক্যাশে জিনিসগুলি করে) যেমন আপনার উত্স গাছের উপ-ডিরেক্টরি হিসাবে

    উইন্ডোজ cmd.exe

    > rmdir /s /q VS2015
    > mkdir VS2015
    > cd VS2015

    বাশ শেল

    $ rm -rf MSYS
    $ mkdir MSYS
    $ cd MSYS

    এবং নিশ্চিত হয়ে নিন যে আপনার নতুন কমান্ড শেলটি আপনার নতুন নির্মিত বাইনারি আউটপুট ডিরেক্টরিকে নির্দেশ করে।

আপনি চেষ্টা করতে পারেন এমন সাধারণ জিনিস

  1. সিএমকে কি কোনও / আপনার ডিফল্ট সংকলক খুঁজে পেতে এবং চালাতে সক্ষম? জেনারেটর না দিয়ে চালান

    > cmake ..
    -- Building for: Visual Studio 14 2015
    ...

    জেনারেটরটি সঠিকভাবে ব্যবহারের জন্য নির্ধারণ করে নিখুঁত - যেমন এখানে Visual Studio 14 2015

  2. এটি আসলে কী ব্যর্থ হয়েছিল?

    পূর্ববর্তী বিল্ড আউটপুট ডিরেক্টরিতে CMakeFiles\CMakeError.log দেখুন আপনার যে কোনও ত্রুটি বার্তাটি বোঝায় বা CMakeFiles\[Version]\CompilerIdC তে উত্পন্ন পরীক্ষা প্রকল্পটি খোলার / সঙ্কলনের চেষ্টা করে কমান্ড লাইন থেকে সরাসরি CompilerIdCXX (ত্রুটি লগের মতো পাওয়া যায়)।

সিএমকে ভিজ্যুয়াল স্টুডিও খুঁজে পাচ্ছেন না

  1. সঠিক জেনারেটর সংস্করণ নির্বাচন করার চেষ্টা করুন:

    > cmake --help
    > cmake -G "Visual Studio 14 2015" ..
  2. যদি এটি সহায়তা না করে তবে ভিজ্যুয়াল স্টুডিও পরিবেশের ভেরিয়েবলগুলি প্রথমে সেট করার চেষ্টা করুন (পথটি পৃথক হতে পারে):

    > "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
    > cmake ..

    বা আপনার উইন্ডোজ স্টার্ট মেনুতে All Programs / Visual Studio 2015 / Visual Studio Tools অধীনে উইন্ডোজ স্টার্ট মেনুতে Developer Command Prompt for VS2015 ব্যবহার করুন (ইঙ্গিতটির জন্য @Antwane ধন্যবাদ)।

পটভূমি : সিএমকে সমস্ত ভিজ্যুয়াল স্টুডিও রিলিজ এবং স্বাদগুলিকে সমর্থন করে (এক্সপ্রেস, সম্প্রদায়, পেশাদার, প্রিমিয়াম, পরীক্ষা, দল, উদ্যোগ, চূড়ান্ত ইত্যাদি)। সংকলকের অবস্থান নির্ধারণ করতে এটি রেজিস্ট্রি অনুসন্ধানের সংমিশ্রণ ব্যবহার করে (উদাহরণস্বরূপ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[Version];InstallDir ), সিস্টেম পরিবেশের ভেরিয়েবল এবং - অন্য কেউ যদি কিছু নিয়ে আসে না - স্পষ্টতই সংকলক কল করার চেষ্টা করুন।

সিএমকে জিসিসি (মিনজিডাব্লু / এমএসএস) খুঁজে পাচ্ছেন না

  1. আপনি MSys.bat দিয়ে MSys bash শেলটি শুরু করেন এবং সরাসরি msys.bat কল করার চেষ্টা করেন

    $ 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 এনভায়রনমেন্ট ভেরিয়েবল কীভাবে সেট করবেন? দেখুন ) এবং আবার চেষ্টা করুন।

  2. যদি এটি এখনও কাজ না করে থাকে তবে সরাসরি এক্সপোর্ট করে 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

    আরও তথ্যের জন্য দেখুন কীভাবে সিএমকেকের জন্য নতুন জিসিসির পাথ নির্দিষ্ট করা যায়

    দ্রষ্টব্য : " mingw32-make " জেনারেটরটি ব্যবহার করার সময় আপনাকে mingw32-make দিয়ে বিতরণ করা mingw32-make প্রোগ্রামটি ব্যবহার mingw32-make হবে

  3. এখনও কাজ করছে না? এটা বিরক্তিকর. অনুগ্রহ করে নিশ্চিত করুন যে সংকলকটি সেখানে রয়েছে এবং এতে সম্পাদনযোগ্য অধিকার রয়েছে (উপরের শর্তাবলী অধ্যায়টিও দেখুন)।

    অন্যথায় সিএমকের শেষ অবলম্বনটি হ'ল নিজেই কোনও সংকলক অনুসন্ধান না করে সিএমকের অভ্যন্তরীণ ভেরিয়েবলগুলি সরাসরি সেট করুন

    $ cmake -DCMAKE_C_COMPILER=/c/MinGW/bin/gcc.exe -DCMAKE_CXX_COMPILER=/c/MinGW/bin/g++.exe ..

    আরও তথ্যের জন্য দেখুন Cmake সম্মান দেয় না -D CMAKE_CXX_COMPILER = g ++ এবং Cmake ত্রুটি স্থাপনের সংকলক

    বিকল্পভাবে সেই পরিবর্তনগুলি উইন্ডোজে cmake-gui.exe সেট করা যেতে পারে। দেখুন কুমেক সংকলক খুঁজে পাচ্ছে না

পটভূমি : ভিজ্যুয়াল স্টুডিওর মতোই। সিএমকে সমস্ত ধরণের জিসিসির স্বাদকে সমর্থন করে। এটি পরিবেশের ভেরিয়েবলগুলি (সিসি, স্যাক্সএক্সএক্স ইত্যাদি) অনুসন্ধান করে বা কেবল সংকলককে কল করার চেষ্টা করে। এছাড়াও এটি কোনও উপসর্গ সনাক্ত করতে পারে (যখন cross-compiling ) এবং এটি জিএনইউ সংকলক ranlib যুক্ত করার চেষ্টা করে ( ar , ranlib , strip , ld , nm , objcopy এবং objcopy )।


এখানে সমাধানগুলির কোনওটিই আমার সমস্যার সমাধান করে না - আমি যখন সর্বজনীন সি রানটাইমের জন্য উইন্ডোজ আপডেট ইনস্টল করি।

এখন সিএমকে কাজ করছে এবং ভিজ্যুয়াল স্টুডিও থেকে আর কোনও লিঙ্ক ঝুলছে না।

উইন্ডোজে ইউনিভার্সাল সি রানটাইমের জন্য আপডেট


কমান্ড লাইন থেকে সিএমকে চালানোর সময় আমার চাকাটি একই রকম ছিল ( No CMAKE_CXX_COMPILER could be found. )) ম্যানুয়ালি এন্ট্রি যোগ করার পরে

C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin

পাঠ পরিবেশের পরিবর্তনশীলটিতে এটি আমার পক্ষে কাজ করেছিল।


নিশ্চিত হয়ে নিন যে আপনি ভিজ্যুয়াল স্টুডিওর সঠিক সংস্করণটি নির্বাচন করেছেন। এটি মনে হয় এর চেয়ে জটিল কারণ কারণ ভিজুয়াল স্টুডিও 2015 হ'ল ভিজ্যুয়াল স্টুডিও 14, এবং একইভাবে ভিজ্যুয়াল স্টুডিও 2012 ভিজ্যুয়াল স্টুডিও ১১ I আমি ভুলভাবে ভিজুয়াল স্টুডিও 15 নির্বাচন করেছি যা আসলে ভিজুয়াল স্টুডিও 2017, যখন আমি 2015 ইনস্টল করেছি had


লিবিগিত ২-০.২৩.৪ তৈরি করার সময় আমি এই সমস্যাটিতে চলে এসেছি। আমার জন্য সমস্যাটি ছিল যে সি ++ সংকলক এবং সম্পর্কিত প্যাকেজগুলি ভিএস ২০১৫ এর সাথে ইনস্টল করা হয়নি, সুতরাং "সি: \ প্রোগ্রাম ফাইল (x86) \ মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও 14.0 \ ভিসি \ vcvarsall.bat" ফাইলটি অনুপস্থিত ছিল এবং কামেক সন্ধান করতে সক্ষম হয় নি সংকলক

আমি ভিজ্যুয়াল স্টুডিও 2015 GUI ( সি: \ প্রোগ্রাম ফাইলগুলি (x86) \ মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও 14.0 \ কমন 7 7 আইডিই \ devenv.exe ) এ ম্যানুয়ালি একটি সি ++ প্রকল্প তৈরি করার চেষ্টা করেছি এবং প্রকল্পটি তৈরি করার সময়, আমি সি ++ ডাউনলোড করার জন্য একটি প্রম্পট পেয়েছি & সম্পর্কিত প্যাকেজ।

প্রয়োজনীয় প্যাকেজগুলি ডাউনলোড করার পরে, আমি vcvarsall.bat দেখতে পাচ্ছিলাম এবং কামক নিম্নলিখিত লগ সহ সফলভাবে সংকলকটি নির্বাহ করতে এবং সম্পাদন করতে সক্ষম হয়েছিল:

apt-get update
apt-get install build-essential

সিএমকে নিয়ে আমারও একই ত্রুটি ছিল। আমার ক্ষেত্রে, আমি প্রাথমিক সিএমকে কথোপকথনে ভুল ভিজ্যুয়াল স্টুডিও সংস্করণটি ব্যবহার করেছি যেখানে আমাদের ভিজ্যুয়াল স্টুডিও সংকলকটি নির্বাচন করতে হবে।

তারপরে আমি এটিকে "ভিজ্যুয়াল স্টুডিও 11 2012" এ পরিবর্তন করেছি এবং জিনিসগুলি কাজ করেছে। (আমার পিসিতে আমার ভিজ্যুয়াল স্টুডিও আলটিমেট 2012 সংস্করণ রয়েছে)। সাধারণভাবে, প্রাথমিক সিএমকে কনফিগারেশন ডায়ালগটিতে ভিজ্যুয়াল স্টুডিওর একটি পুরানো সংস্করণ ইনপুট করার চেষ্টা করুন।


সিএমকে এর এক্সকোড জেনারেটর ব্যবহার করার সময়, যখন সিসি সক্ষম করা থাকে তবে আমি ঠিক ccache ত্রুটি ccache । ক্যাশে অক্ষম করা আমার জন্য সমস্যাটি স্থির করে। নীচে আমি একটি ফিক্স / চেক উপস্থাপন করি যা ম্যাকওএসের জন্য কাজ করে তবে অন্যান্য প্ল্যাটফর্মগুলিতে একইভাবে কাজ করা উচিত।

স্পষ্টতই, here বর্ণিত হিসাবে সিএমকে-র এক্সকোড জেনারেটর (এবং অন্যান্য) কেও ক্যাশের সাথে একত্রে ব্যবহার করা সম্ভব। তবে আমি নিজে চেষ্টা করে দেখিনি।

# 1) To check if ccache is enabled:
echo $CC
echo $CXX
# This prints something like the following: 
#     ccache clang -Qunused-arguments -fcolor-diagnostics. 
# CC or CXX are typically set in the `.bashrc` or `.zshrc` file.

# 2) To disable ccache, use the following:
CC=clang
CXX=clang++

# 3) Then regenerate the cmake project
cmake -G Xcode <path/to/CMakeLists.txt>




visual-studio-2015