我想迫使CMake的使用“Unix的Makefile文件” 发电机从内部的CMakeLists.txt。
这是我现在使用的命令。
cmake -G "Unix Makefiles" .
我想它是这样。
cmake .
在Windows下运行安装VC和一个自定义的工具链。
我希望是,能够设置在发电机中CMakeLists.txt
文件。
也许是这样的。
set(CMAKE_GENERATOR "Unix Makefiles")
我想迫使CMake的使用“Unix的Makefile文件” 发电机从内部的CMakeLists.txt。
这是我现在使用的命令。
cmake -G "Unix Makefiles" .
我想它是这样。
cmake .
在Windows下运行安装VC和一个自定义的工具链。
我希望是,能够设置在发电机中CMakeLists.txt
文件。
也许是这样的。
set(CMAKE_GENERATOR "Unix Makefiles")
这里是为我工作-在装有该项目目录创建一个名为PreLoad.cmake文件:
set (CMAKE_GENERATOR "Unix Makefiles" CACHE INTERNAL "" FORCE)
在我看来,这个变量CMAKE_GENERATOR
设置为时已晚,如果设置在CMakeLists.txt
。 如果你使用(甚至在年初CMakeLists.txt
)
set(CMAKE_GENERATOR "Ninja")
message("generator is set to ${CMAKE_GENERATOR}")
你可以在输出看到的东西像
% cmake ../source
-- The C compiler identification is GNU 4.9.2
...
-- Detecting CXX compile features - done
generator is set to Ninja
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/build
所以变量设置为仅在生成过程的末尾。 如果你使用类似
set(CMAKE_GENERATOR "Ninja" CACHE INTERNAL "" FORCE)
在CMakeLists.txt
,然后在的非常第一次运行cmake ../source
(无-G
)的默认发生器被使用。 变量CMAKE_GENERATOR
被存储在缓存中,虽然。 所以,如果你重新运行cmake ../source
之后,它会在指定的使用发电机CMAKE_GENERATOR
缓存中的变量。
这肯定不是最完美的解决方案,虽然;-)也许使用,将实际执行的批处理文件cmake -G generator
用户...
这不是我所得到的,当我运行相同的命令,cmake的将寻找一个gcc编译/ make工具。 如果没有设置PATH正确地将失败的东西,如:
D:\Development\build>cmake -G "Unix Makefiles" ..\source CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_C_COMPILER_ENV_VAR CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_C_COMPILER CMake Error: Could not find cmake module file:D:/Development/build/CMakeFiles/CMakeCCompiler.cmake CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_CXX_COMPILER_ENV_VAR CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly. Missing variable is: CMAKE_CXX_COMPILER CMake Error: Could not find cmake module file:D:/Development/build/CMakeFiles/CMakeCXXCompiler.cmake CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage -- Configuring incomplete, errors occurred!
当GCC / MinGW的是路径,然后一切工作正常。 所以,你能提供更多的信息,你的PATH变量或CMake的版本?