簡體   English   中英

Windows 上的 CMake

[英]CMake on Windows

我正在嘗試在 Windows 上運行 CMake,但出現以下錯誤:

-- The C compiler identification is unknown
CMake Error at CMakeLists.txt:3 (PROJECT):
  The CMAKE_C_COMPILER:

    cl

  is not a full path and was not found in the PATH.

  To use the NMake generator with Visual C++, cmake must be run from a shell
  that can use the compiler cl from the command line.  This environment is
  unable to invoke the cl compiler.  To fix this problem, run cmake from the
  Visual Studio Command Prompt (vcvarsall.bat).

  Tell CMake where to find the compiler by setting either the environment
  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
  the compiler, or to the compiler name if it is in the PATH.

但是我的“CC”環境變量已設置!

>>echo %CC%
C:\Anaconda2\MinGW\x86_64-w64-mingw32\bin\gcc.exe

因為 CMake 的錯誤消息在這里具有誤導性,我認為它需要更詳細的答案。

簡而言之,您遇到了雞與蛋的問題。

CMake 的編譯器檢測功能強大,但由於 - 在第一次嘗試期間 -

  • 您沒有提供任何與-G一起使用的顯式生成器
  • 它找不到安裝的 Visual Studio
  • 它在您的PATH環境中找不到任何 C/C++ 編譯器
  • 它找不到使用編譯器完整路徑定義的CC環境變量

它默認為nmake

現在問題來了:它確實記住了您在變量緩存中的隱式生成器/編譯器選擇(請參閱CMAKE_GENERATOR中的CMakeCache.txt )。 如果您安裝了多個編譯器,這是一個非常有用的功能。

但是,如果您隨后聲明CC環境變量 - 正如錯誤消息所暗示的那樣 - 為時已晚,因為在第一次嘗試時記住了您的生成器的選擇。

我看到了兩種可能的方法:

  1. 通過使用cmake.exe -G "MinGW Makefiles" .. (如@Guillaume 鏈接的答案所建議的) 給出正確的選項來cmake.exe -G "MinGW Makefiles" ..生成器的選擇
  2. 刪除項目的二進制輸出目錄(包括CMakeCache.txt )並在將編譯器的bin文件夾添加到PATH環境后執行cmake.exe ..

參考

我使用cmake -G "MinGW Makefiles" . 而不是cmake . 有效!

我遇到了同樣的問題,對我有用的是:

  1. 我安裝了 Visual Studio(按照本教程)。
  • 您將需要安裝 2019 版(現在是 2021 年)——還有一些額外的東西,但沒關系。 整個事情大約是 6.7 G。
  • 你真的不需要pip install dlib部分和其余部分。
  1. 在上面教程的基礎上,我在環境變量( C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\VC\\Tools\\MSVC\\14.29.30037\\bin\\Hostx64\\x64添加了這個路徑。添加環境變量路徑的方法也可以在上面的教程中找到。)

你的cmake是如何安裝的? 如果您使用cygwin安裝它,現在嘗試cmake官方站點的最新Windows版本並設置PATH變量以確保使用正確的cmake版本。 它對我有用,希望它對你也有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM