如何编写CMakeList文件

时间:2017-01-17 08:17:34

标签: cmake

cmake_minimum_required(VERSION 3.5.1 FATAL_ERROR)       
project(WINDOW CXX) 
set(WINDOW_SRCS window.cpp)     
add_executable(Window ${WINDOW_SRCS})       
set(CMAKE_CXX_STANDARD 14)  

find_library(OPENGL_LIB 
    NAMES lGLEW lglfw3 lGL lrt lm ldl lXrandr lXinerama lXxf86vm lXext lXcursor lXrender lXfixes lX11 lpthread lxcb lXau lXdmcp lXi lSOIL lassimp 
    PATHS /usr/lib /usr/local/lib
)   

if(OPENGL_LIB)
    target_link_library(Window ${OPENGL_LIB})   
endif() 

我正在尝试编写CMakeList.txt文件。我在生成的Makefile中收到错误

makefile:1:***缺少分隔符。停止。

我在每行的开头添加了tabs。我无法弄清楚哪里出错了

1 个答案:

答案 0 :(得分:0)

问题是您还没有从之前的CMake配置运行中清除CMake生成的文件 请删除CMakeCache.txt文件和Makefile以及目录CMakeFiles,如果文件存在cmake_install.cmakeCTestTestfile.cmake
现在,您可以再次通过cmake .重新运行CMake配置 然后执行make,它应该没问题。

在答案中,我没有尝试改进您的CMakeLists.txt,只是为了让您遇到的问题消失。
否则,正如@roalz所建议的那样,您可以使用find_package()来查找OpenGL 另一个“改进”可能是使用源外构建。这样,所有构建结果都将包含在一个目录中,而不会干扰源树。在这种情况下,要从干净状态开始并重新运行CMake配置,您只需要删除该构建目录,而不是所有创建的单个文件。这对于具有嵌套源目录(多个级别)的项目特别有用。