Запуск CMake в Windows - PullRequest
       30

Запуск CMake в Windows

62 голосов
/ 05 ноября 2010

В настоящее время я пытаюсь запустить CMake в моей системе Windows 7 (64-разрядная версия). Я хочу скомпилировать TagLib для последующего использования с приложением Qt, над которым я работаю. Я хотел бы скомпилировать его с MinGW (не Visual C ++, как в этот другой вопрос ).

Я загружаю установщик (cmake-2.8.3-win32-x86.exe) и устанавливаю его (я также предпочитаю добавить CMake к моему пути). Затем я иду в каталог, почему файл CMakeLists.txt и запускаю cmake .. Затем он дает мне эту гигантскую ошибку.

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 \ bin), но все равно выдает ту же ошибку. Я также попытался установить CMAKE_C_COMPILER и CMAKE_CXX_COMPILER в местоположение g ++ (C: \ MinGW \ bin \ g ++).

Кто-нибудь знает, что здесь происходит?

РЕШЕНИЕ:

По предложению Тибура я запустил графический интерфейс cmake для создания файлов make. Затем я пошел в каталог taglib и запустил mingw32-make.exe, чтобы выполнить фактическую сборку.

Ответы [ 2 ]

85 голосов
/ 05 ноября 2010

Генератор по умолчанию для Windows, кажется, установлен на NMAKE.Попробуйте использовать:

cmake -G "MinGW Makefiles"

Или используйте графический интерфейс и выберите MinGW Makefiles при запросе генератора.Не забудьте очистить каталог, в котором вы пытались запустить CMake, или удалить кеш в графическом интерфейсе.В противном случае, он попытается снова с NMAKE.

14 голосов
/ 21 декабря 2011

В вашем каталоге установки Visual Studio есть vcvars32.bat.Вы можете добавить вызов cmd.exe в конце этой пакетной программы и запустить его.Из этой оболочки вы можете использовать CMake или cmake-gui, а clake будет известен CMake.

...