Opengl CMake成功,导致生成文件错误

Opengl CMake成功,导致生成文件错误,opengl,makefile,cmake,Opengl,Makefile,Cmake,这是我之前问过的一个问题的后续问题,如果你愿意的话,可以找到这个问题。总而言之,我一直试图理解将必要的库链接到OpenGL的构建过程。我知道有一些样板和其他方法使这个过程更容易;我对能够自主地这样做很感兴趣 我的问题是,尽管CMake成功地处理了我的CMakeLists.txt文件,但生成的Makefile会抛出一个错误。如果有帮助,我的文件结构是 此处的上下文: + infuriating_project + bin // post compile results + src

这是我之前问过的一个问题的后续问题,如果你愿意的话,可以找到这个问题。总而言之,我一直试图理解将必要的库链接到OpenGL的构建过程。我知道有一些样板和其他方法使这个过程更容易;我对能够自主地这样做很感兴趣

我的问题是,尽管CMake成功地处理了我的CMakeLists.txt文件,但生成的Makefile会抛出一个错误。如果有帮助,我的文件结构是 此处的上下文:

+ infuriating_project
    + bin // post compile results
    + src // my humble code
    + deps // external code
        +glew
            + include
            + src
        +glfw
            + include
            + src
        +glm
        +soil
            + lib
            + src
以下是我的CMakeLists.txt文件的内容:

cmake_minimum_required (VERSION 3.0)

# Version Information ---------------------------------------------------------
project (openGL-practice)
SET (VERSION_MAJOR 1)
SET (VERSION_MINOR 0)
SET (VERSION_FEATURE 0)
SET (VERSION_PATCH 0)
SET (VERSION "${VERSION_MAJOR}.${VERSION_MINOR}")
SET (VERSION "${VERSION}.${VERSION_FEATURE}.${VERSION_PATCH}")
MESSAGE ("Version: ${VERSION}")

# Configure Binary Directories ------------------------------------------------
SET (PROJECT_BINARY_DIR "${PROJECT_BINARY_DIR}/bin")
MESSAGE ("Source path: ${PROJECT_SOURCE_DIR}")
MESSAGE ("Binary path: ${PROJECT_BINARY_DIR}")

# Configure Depenency Directories ---------------------------------------------
SET (deps "${PROJECT_SOURCE_DIR}/deps")
MESSAGE ("Dependencies path: ${deps}")
SET (glew_inc "${deps}/glew/include/GL/")
SET (glew_src "${deps}/glew/src/")
SET (glfw_inc "${deps}/glfw/include/GLFW/")
SET (glfw_src "${deps}/glfw/src/")
SET (glm "${deps}/glm/glm/")
SET (soil_lib "${deps}/lib/")
SET (soil_src "${deps}/src/")

# Include directories ---------------------------------------------------------
include_directories("
    ${PROJECT_SOURCE_DIR}
    ${glew_inc}
    ${glew_src}
    ${glfw_inc}
    ${glfw_src}
    ${glm}
    ${soil_lib}
    ${soil_src}
    ")

# Add executable --------------------------------------------------------------
add_executable(main ${PROJECT_SOURCE_DIR}/src/main.cpp)
完成后,运行make时出现以下错误:

CMakeFiles/main.dir/flags.make:10: *** missing separator.  Stop.
make[1]: *** [CMakeFiles/main.dir/all] Error 2
make: *** [all] Error 2
我对这个错误的调查使我相信有一个语法错误,很可能是tabs vs spaces错误,如图所示。我确信这是代表我的问题,而不是CMake中的bug。我相信应该有办法修改我的CMakeLists文件,这样就不会出现此问题

对于这篇已经很长的文章来说,Makefile有点长。如果上传对我有帮助,我可以用这些信息编辑这个问题。非常感谢您提供的所有帮助或建议。

这是错误的:

include_directories("
    ${PROJECT_SOURCE_DIR}
    ${glew_inc}
    ${glew_src}
    ${glfw_inc}
    ${glfw_src}
    ${glm}
    ${soil_lib}
    ${soil_src}
    ")
不要将此作为一个长字符串引用:cmake将尝试提供此字符串(包括换行符)作为编译器中
-I
的参数

使用:


或者,如果您愿意,请分别引用每条路径。

谢谢您,这正是问题所在。
include_directories(
    ${PROJECT_SOURCE_DIR}
    ${glew_inc}
    ${glew_src}
    ${glfw_inc}
    ${glfw_src}
    ${glm}
    ${soil_lib}
    ${soil_src}
    )