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
。我无法弄清楚哪里出错了
答案 0 :(得分:0)
问题是您还没有从之前的CMake配置运行中清除CMake生成的文件
请删除CMakeCache.txt
文件和Makefile
以及目录CMakeFiles
,如果文件存在cmake_install.cmake
和CTestTestfile.cmake
。
现在,您可以再次通过cmake .
重新运行CMake配置
然后执行make
,它应该没问题。
在答案中,我没有尝试改进您的CMakeLists.txt
,只是为了让您遇到的问题消失。
否则,正如@roalz所建议的那样,您可以使用find_package()
来查找OpenGL
另一个“改进”可能是使用源外构建。这样,所有构建结果都将包含在一个目录中,而不会干扰源树。在这种情况下,要从干净状态开始并重新运行CMake配置,您只需要删除该构建目录,而不是所有创建的单个文件。这对于具有嵌套源目录(多个级别)的项目特别有用。