私は、CMakeを使用してVisual Studioソリューションを作成し、最新バージョンのasepriteをコンパイルしようとしています。
No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.
すでにGCCをダウンロードしており、Visual Studio 2015を使用しています。
私はこのチュートリアルに従っています:
私は、CMakeを使用してVisual Studioソリューションを作成し、最新バージョンのasepriteをコンパイルしようとしています。
No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.
すでにGCCをダウンロードしており、Visual Studio 2015を使用しています。
私はこのチュートリアルに従っています:
回答:
これらのエラーメッセージ
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!
CMakeが単純なテストプログラムをコンパイルするためのC / CXXコンパイラを見つけることができなかったことを意味します(ビルド環境を検出する際にCMakeが最初に試みることの1つ)。
問題を見つける手順は、生成するビルド環境によって異なります。次のチュートリアルは、ここでのスタックオーバーフローに関する回答と、Microsoft Windows 7/8/10およびUbuntu 14.04でのCMakeに関する私自身の経験の一部です。
前提条件
クリーンなビルドディレクトリがある(CMakeは最後の試行からのキャッシュを行うため)たとえば、ソースツリーのサブディレクトリとして
Windows cmd.exe
> rmdir /s /q VS2015
> mkdir VS2015
> cd VS2015
バッシュシェル
$ rm -rf MSYS
$ mkdir MSYS
$ cd MSYS
コマンドシェルが新しく作成されたバイナリ出力ディレクトリを指していることを確認します。
試すことができる/すべき一般的なこと
CMakeは、任意のデフォルトコンパイラを見つけて実行できますか?ジェネレーターを与えずに実行
> cmake ..
-- Building for: Visual Studio 14 2015
...
使用するジェネレータが正しく決定されていれば完璧です-このように Visual Studio 14 2015
実際に失敗したのは何ですか?
前のビルド出力ディレクトリでCMakeFiles\CMakeError.log
、意味のあるエラーメッセージを探すか、またはで生成されたテストプロジェクトを開いてコンパイルしてみてくださいCMakeFiles\[Version]\CompilerIdC
。CompilerIdCXX
コマンドラインから直接(エラーログで見つかります)。
CMakeはVisual Studioを見つけることができません
正しいジェネレーターのバージョンを選択してみてください:
> cmake --help
> cmake -G "Visual Studio 14 2015" ..
それでも問題が解決しない場合は、最初にVisual Studio環境変数を設定してみてください(パスは異なる場合があります)。
> "c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
> cmake ..
またはDeveloper Command Prompt for VS2015
、WindowsのスタートメニューのAll Programs
/ Visual Studio 2015
/の下にあるショートカットを使用しますVisual Studio Tools
(ヒントは@Antwaneに感謝します)。
背景:CMakeは、Visual Studioのすべてのリリースとフレーバー(Express、Community、Professional、Premium、Test、Team、Enterprise、Ultimateなど)をサポートしています。コンパイラの場所を特定するために、レジストリの検索(例:at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\[Version];InstallDir
)、システム環境変数の組み合わせを使用し、他のどれも何かを考え出さない場合は、明らかにコンパイラを呼び出します。
CMakeはGCC(MinGW / MSys)を見つけることができません
MSys 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
GCCが見つからなかった場合はexport PATH=...
、コンパイラパスを追加する呼び出し(CMakeスクリプトで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
詳細については、CMakeの新しいGCCパスを指定する方法をご覧ください。
注:「MinGW Makefiles」ジェネレータを使用する場合はmingw32-make
、MinGWとともに配布されるプログラムを使用する必要があります。
まだ動作していません?それは変だ。コンパイラが存在し、実行権限があることを確認してください(上記の前提条件の章も参照)。
そうでない場合、CMakeの最後の手段は、コンパイラー自体を検索せずに、CMakeの内部変数を直接設定しないことです。
$ 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
Windows で設定することもできます。Cmakeがコンパイラを見つけられないを参照してください
背景:Visual Studioとほとんど同じです。CMakeはあらゆる種類のGCCフレーバーをサポートしています。環境変数(CC、CXXなど)を検索するか、コンパイラの呼び出しを試みます。加えて、(場合、任意のプレフィックスを検出するクロスコンパイル)とGNUコンパイラツールチェーン(全てのbinutilsに追加しようとするとar
、ranlib
、strip
、ld
、nm
、objdump
、およびobjcopy
)。
これは、Visual Studio 15 2017をインストールした後に起こりました。
Visual Studio 14 2015のC ++コンパイラは問題ではありませんでした。Windows 10 SDKに問題があるようです。
Visual Studio 14 2015にWindows 10 SDKを追加すると、問題が解決しました。
添付のスクリーンショットを参照してください。
CMakeを使用しているときにもこのエラーが発生しました。
No CMAKE_C_COMPILER could be found.
No CMAKE_CXX_COMPILER could be found.
MSDNライブラリの記事「Visual Studio 2015のVisual C ++」にある「警告」ボックスは、私に必要な助けを与えてくれました。
Visual Studio 2015には、C ++がデフォルトでインストールされていません。したがって、新しいC ++プロジェクトを作成すると、必要なC ++コンポーネントをダウンロードするように求められます。
これは私にとってUbuntu 17.10(Artful Aardvark)で機能します。
apt-get update
apt-get install build-essential
libgit2-0.23.4のビルド中にこの問題に遭遇しました。私にとっての問題は、C ++コンパイラと関連パッケージがVS2015でインストールされなかったため、「C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ VC \ vcvarsall.bat」ファイルが見つからず、Cmakeが見つけられなかったことでした。コンパイラ。
Visual Studio 2015 GUI(C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ devenv.exe)でC ++プロジェクトを手動で作成しようとしましたが、プロジェクトの作成中にC ++をダウンロードするように求められました&関連パッケージ。
必要なパッケージをダウンロードした後、vcvarsall.batを確認できました。Cmakeはコンパイラを見つけ、次のログで正常に実行できました。
C:\Users\aksmahaj\Documents\MyLab\fritzing\libgit2\build64>cmake ..
-- Building for: Visual Studio 14 2015
-- The C compiler identification is MSVC 19.0.24210.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual
Studio 14.0/VC/bin/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual
Studio 14.0/VC/bin/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Could NOT find PkgConfig (missing: PKG_CONFIG_EXECUTABLE)
-- Could NOT find ZLIB (missing: ZLIB_LIBRARY ZLIB_INCLUDE_DIR)
-- zlib was not found; using bundled 3rd-party sources.
-- LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of
the default search path.
-- Looking for futimens
-- Looking for futimens - not found
-- Looking for qsort_r
-- Looking for qsort_r - not found
-- Looking for qsort_s
-- Looking for qsort_s - found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - not found
-- Found PythonInterp: C:/csvn/Python25/python.exe (found version "2.7.1")
-- Configuring done
-- Generating done
-- Build files have been written to:
C:/Users/aksmahaj/Documents/MyLab/fritzing/libgit2/build64
私にとって、この問題は、プロジェクトをより浅い親ディレクトリ、つまり次の場所に移動したときに、Windowsではなくなりました。
C:\Users\spenc\Desktop\MyProjectDirectory
の代わりに
C:\Users\spenc\Desktop\...\MyProjectDirectory
。
問題の原因は、MSBuildのファイルパスの長さが260文字に制限されていたことにあると思います。これにより、CMakeが実行する基本的なコンパイラーテストが呼び出さCompilerIdCXX.vcxproj
れ、次のエラーで失敗するプロジェクトがビルドされます。
C1083: Cannot open source file: 'CMakeCXXCompilerId.cpp'
ファイルのパスの長さなどのため
C:\Users\spenc\Desktop\...\MyProjectDirectory\build\CMakeFiles\...\CMakeCXXCompilerId.cpp
MAX_PATH制限を超えています。
CMakeは、CXXコンパイラはないと結論付けます。
ここでの解決策はどれも私の問題を解決しません-ユニバーサルCランタイム用のWindows Updateをインストールしたときのみです。
これでCMakeが機能し、Visual Studioからリンクがハングしなくなりました。
また、自分がsudoユーザーであり、作業中のディレクトリに対する読み取り/書き込みアクセス権があることを確認することもできます。OS Xでも同様の問題があり、sudoモードに入るだけで解決しました。
将来的に私のような人を助けるために:
私はこの問題を24時間、3つの異なる64ビットマシン(Win7、Windows 8.1 VMおよびWIn 8.1ラップトップ)で24時間抱えていました-VS 2017でWebKitをビルドしようとしました。
ここでの単純な問題は、VC ++コンパイラー(つまり、cl.exeとそれに依存するDLL)がCMakeから見えないことです。シンプル。これらのバイナリを含むVC ++フォルダーをCMakeおよび作業中のコマンドプロンプト(コマンドプロンプトからCmakeを実行している場合)から見えるようにすることで、出来上がりです!(上記の他の人が提起した要点に加えて)
とにかく、すべての種類の修正後-これらの多くのフォーラムに投稿されたように-PATH変数の内容が複数のVisual Studio BINパスなどで乱雑になっていないことを確認するだけの問題であることがわかりました。代わりに、ポイント:
a)コンパイラの場所(つまり、使用するVisual Studioのバージョンのcl.exe)。私の場合(64ビットプラットフォームを対象とし、64ビットホストで開発している):C:\ Program Files(x86 )\ Microsoft Visual Studio \ 2017 \ Community \ VC \ Tools \ MSVC \ 14.15.26726 \ bin \ Hostx64 \ x64
b)さらに、(cl.exeが依存する)依存DLLを含むフォルダー: api-ms-win-crt-runtime-l1-1-0.dll-私のマシンでは、
C:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Community \ Common7 \ IDE \ Remote Debugger \ x64
これらの2つのディレクトリは、簡略化されたCUSTOMシステムパス変数(管理者特権コマンドプロンプトで動作)に追加され、「CMAKE_C_COMPILERが見つかりませんでした」と「CMAKE_CXX_COMPILERが見つかりませんでした」というメッセージがなくなりました。エラー。
それが誰かを助けることを願っています。
CMakeのXcodeジェネレーターを使用しているときに、ccacheが有効になっていると、正確にエラーが報告されます。ccacheを無効にすると問題が解決しました。以下に、MacOSで機能する修正/チェックを示しますが、他のプラットフォームでも同様に機能するはずです。
どうやら、ここで説明するように、CMakeのXcodeジェネレーター(およびその他)をccacheと組み合わせて使用することもできます。しかし、私はそれを自分で試したことはありません。
# 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に付属する開発者コマンドプロンプトを使用してcd
からyour/jcef/dir
、実行してcmake -G "Visual Studio 14 Win64" ..
私も同じ問題を抱えていました。
自分のマシンにdlibをインストールしようとしたところ、このエラーが発生しました。質問で言及されているチュートリアルは、Visual Studio 2017のダウンロードにつながります。VS2017をアンインストールしてVS 2015をインストールすることで、これを解決しました
このstackoverflowスレッドを介してVS 2015をインストールできます: Visual Studio Community Edition 2015(2017ではない)をダウンロードする方法
ARMが見つかった場合は、Cmakelists.txtを調べて、C ++ for ARMをインストールする必要があります。
それはこれらのパッケージです:
ARM64用C ++ユニバーサルWindowsプラットフォーム「不要」
ARM用のVisual C ++コンパイラおよびライブラリ「不要」
ARM64用Visual C ++コンパイラおよびライブラリ「非常に必要になる可能性が高い」
Required for finding Threads on ARM
enable_language(C)
enable_language(CXX)
次に問題
CMAKE_C_COMPILERが見つかりませんでした。
CMAKE_CXX_COMPILERが見つかりませんでした。
clangのようなcコンパイラを指定しない限り、消える可能性があります。おそらく、clangのインストールは、他の方法で機能します。
ARM向けにコンパイルしていない場合は、enable_languageの前に#を付けてcmakelists.txtでオプションの削除を行うことができます。