【发布时间】:2018-06-28 15:04:59
【问题描述】:
我正在尝试建立一个简单的项目,以便学习一些 OpenGL。这是我的 CmakeList.txt:
cmake_minimum_required (VERSION 3.8)
project ("opengl_1")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
find_package(OpenGL REQUIRED)
if (OpenGL_FOUND)
include_directories(${OPENGL_INCLUDE_DIR})
endif()
find_package(GLFW REQUIRED)
if (GLFW_FOUND)
include_directories(${GLFW_INCLUDE_DIR})
endif()
file(GLOB_RECURSE SRC "src/*")
file(GLOB_RECURSE INCLUDES "include/*")
include_directories("include")
# Add source to this project's executable.
add_executable (opengl1 ${SRC} ${INCLUDES})
target_link_libraries(opengl1 ${OPENGL_LIBRARIES} ${GLFW_LIBRARIES})
由于在 Windows 上生成编译命令文件的问题,我已经放弃了 Visual Studio Code for Visual Studio 2017。它需要 Ninja 生成器,我在让 cmake 使用它时遇到了很多麻烦。
所以现在,我在我的项目目录中cd 并执行cmake .:
-- Building for: Visual Studio 15 2017
-- The C compiler identification is MSVC 19.14.26431.0
-- The CXX compiler identification is MSVC 19.14.26431.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.14.26428/bin/Hostx86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenGL: opengl32
-- Found GLFW: C:/libraries/glfw/include (found version "3.2.1")
-- Configuring done
-- Generating done
-- Build files have been written to: ...
任何地方都没有提到忍者生成器。但是,当我在 VS2017 中打开解决方案并使用“生成”更新智能感知时,我得到:
1> Does not match the generator used previously: Visual Studio 15 2017
1> Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory.
CMake Error: Error: generator : Ninja
Does not match the generator used previously: Visual Studio 15 2017
Either remove the CMakeCache.txt file and CMakeFiles directory or choose a different binary directory.
当我删除这些东西时,错误仍然存在。
这里发生了什么?如果我仍然需要 Ninja,有人可以告诉我我需要做什么吗?
谢谢!
【问题讨论】:
-
使用“生成”时,设置正确的CMake generator。如果没有忍者生成器,请不要使用它。
-
@Tsyvarev 如果我安装了 Ninja,我可以在 MSVC 中使用它吗?
-
Visual Studio 2017 附带
ninja。在我的 PC 上,ninja 可以在C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja文件夹下找到。如果出现上述错误:如果您切换 CMake 生成器,则应始终从新的二进制输出目录开始。
标签: visual-studio cmake visual-studio-2017 ninja