首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Windows上运行CMake

在Windows上运行CMake
EN

Stack Overflow用户
提问于 2010-11-05 05:12:49
回答 4查看 112.6K关注 0票数 72

我目前正在尝试让CMake在我的Windows7(64位)系统上运行。我想编译TagLib,以便稍后与我正在开发的Qt应用程序一起使用。我想用MinGW (而不是this other question中的Visual C++ )编译它。

我下载安装程序( CMake -2.8.3-win32-x86.exe)并安装它(我还选择将CMake添加到我的路径中)。然后,我转到CMakeLists.txt文件所在的目录并运行cmake .。然后它给了我一个巨大的错误。

代码语言:javascript
复制
C:\Users\Joel\Downloads\taglib-1.6.3>cmake .
CMake Warning at CMakeLists.txt:1 (project):
  To use the NMake generator, cmake must be run from a shell that can use the
  compiler cl from the command line.  This environment does not contain
  INCLUDE, LIB, or LIBPATH, and these must be set for the cl compiler to
  work.


-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Warning at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/Platform/Windows-cl.cmake:
28 (ENABLE_LANGUAGE):
  To use the NMake generator, cmake must be run from a shell that can use the
  compiler cl from the command line.  This environment does not contain
  INCLUDE, LIB, or LIBPATH, and these must be set for the cl compiler to
  work.
Call Stack (most recent call first):
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeCInformation.cmake:60 (INCLUDE)
  CMakeLists.txt:1 (project)


CMake Error: your RC compiler: "CMAKE_RC_COMPILER-NOTFOUND" was not found.   Please set CMAKE_RC_COM
PILER to a valid compiler path or name.
-- Check for CL compiler version
-- Check for CL compiler version - failed
-- Check if this is a free VC compiler
-- Check if this is a free VC compiler - yes
-- Using FREE VC TOOLS, NO DEBUG available
-- Check for working C compiler: cl
CMake Warning at CMakeLists.txt:2 (PROJECT):
  To use the NMake generator, cmake must be run from a shell that can use the
  compiler cl from the command line.  This environment does not contain
  INCLUDE, LIB, or LIBPATH, and these must be set for the cl compiler to
  work.


CMake Warning at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/Platform/Windows-cl.cmake:
28 (ENABLE_LANGUAGE):
  To use the NMake generator, cmake must be run from a shell that can use the
  compiler cl from the command line.  This environment does not contain
  INCLUDE, LIB, or LIBPATH, and these must be set for the cl compiler to
  work.
Call Stack (most recent call first):
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeCInformation.cmake:60 (INCLUDE)
  CMakeLists.txt:2 (PROJECT)


CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeRCInformation.cmake:22
(GET_FILENAME_COMPONENT):
  get_filename_component called with incorrect number of arguments
Call Stack (most recent call first):
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/Platform/Windows-cl.cmake:28 (ENABLE_LANG
UAGE)
  C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeCInformation.cmake:60 (INCLUDE)
  CMakeLists.txt:2 (PROJECT)


CMake Error: CMAKE_RC_COMPILER not set, after EnableLanguage
CMake Error: your C compiler: "cl" was not found.   Please set CMAKE_C_COMPILER to a valid compiler
path or name.
CMake Error: Internal CMake error, TryCompile configure of cmake failed
-- Check for working C compiler: cl -- broken
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeTestCCompiler.cmake:52
(MESSAGE):
  The C compiler "cl" is not able to compile a simple test program.

  It fails with the following output:





  CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
  CMakeLists.txt:1 (project)


CMake Error: your C compiler: "cl" was not found.   Please set CMAKE_C_COMPILER to a valid compiler
path or name.
CMake Error: your CXX compiler: "cl" was not found.   Please set CMAKE_CXX_COMPILER to a valid compi
ler path or name.
-- Configuring incomplete, errors occurred!

C:\Users\Joel\Downloads\taglib-1.6.3>

考虑到它标榜自己是一个跨平台的产品,我有点惊讶它开箱即用就失败了。

我尝试将INCLUDE、LIB和LIBPATH (Windows环境变量)全部设置为我的MinGW二进制文件目录(C:\MinGW),但仍然显示相同的错误。我还尝试将CMAKE_C_COMPILER和CMAKE_CXX_COMPILER设置为g++ (C:\MinGW\bin\g++)的位置。

有人知道这是怎么回事吗?

解决方案:

根据tibur的建议,我运行了cmake GUI来创建make文件。然后,我进入taglib目录并运行mingw32-make.exe来进行实际的构建。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-11-05 05:17:22

Windows的默认生成器似乎设置为NMAKE。尝试使用:

代码语言:javascript
复制
cmake -G "MinGW Makefiles"

或者使用图形用户界面,并在提示输入生成器时选择MinGW Makefiles。不要忘记清理您试图运行CMake的目录,或者在图形用户界面中删除缓存。否则,它将使用NMAKE重试。

票数 110
EN

Stack Overflow用户

发布于 2011-12-21 22:49:25

在您的Visual Studio安装目录中有一个vcvars32.bat。您可以在该批处理程序的末尾添加call cmd.exe并启动它。在该shell中,您可以使用CMake或cmake-gui,CMake将知道cl.exe。

票数 14
EN

Stack Overflow用户

发布于 2021-05-21 17:30:43

对我有效的命令是:

代码语言:javascript
复制
$ cmake -G "MSYS Makefiles" ..

我正在使用MSYS2/Win10编译一个64位的QT5应用程序(使用MINGW64外壳)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4101456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档