这是我之前询问的一个后续问题,如果您喜欢,可能会发现here。总而言之,我一直在尝试理解将必要的库链接到OpenGL的构建过程。我知道有些样板和其他方法可以使这个过程变得更简单。我有兴趣能够自主地这样做。CMake成功,导致生成文件错误
我的问题是,虽然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
我对这个错误的调查使我相信有一个语法错误,可能是一个制表符vs空格错误,如here 。我确信这是我的一个问题,而不是CMake中的错误。我相信应该有办法改变我的CMakeLists文件,以免发生这个问题。
对于这篇已经很冗长的文章,Makefile有点冗长。如果上传它对我有帮助,我可以用这些信息编辑这个问题。非常感谢您提供任何和所有帮助或建议。
谢谢你,这正是问题所在。 – assemblyDruid