如何编写CMakeList文件
我正在尝试编写一个CMakeList.txt文件。我在生成的Makefile中得到一个错误 makefile:1:**缺少分隔符。停下来如何编写CMakeList文件,cmake,Cmake,我正在尝试编写一个CMakeList.txt文件。我在生成的Makefile中得到一个错误 makefile:1:**缺少分隔符。停下来 我在每行的开头添加了选项卡。我想不出哪里出了错问题是您没有从以前的CMake配置运行中清理CMake生成的文件。 请删除CMakeCache.txt文件和Makefile以及目录CMakeFiles,如果它们存在,请删除文件cmake\u install.cmake和CTestTestfile.cmake 现在,您可以再次通过CMake.重新运行CMake配置
我在每行的开头添加了
选项卡。我想不出哪里出了错问题是您没有从以前的CMake配置运行中清理CMake生成的文件。
请删除CMakeCache.txt
文件和Makefile
以及目录CMakeFiles
,如果它们存在,请删除文件cmake\u install.cmake
和CTestTestfile.cmake
现在,您可以再次通过CMake.
重新运行CMake配置。
然后执行make
,它应该是正常的
在回答中,我没有试图改进您的CMakeLists.txt
,只是为了解决您遇到的问题。
否则,正如@roalz所建议的,您可以使用find_package()
来查找OpenGL。
另一个“改进”可能是使用源代码外构建。通过这种方式,所有构建结果都将包含在一个目录中,而不会干扰源树。在这种情况下,要从干净状态开始并重新运行CMake配置,您只需要删除该构建目录,而不需要删除周围创建的所有单个文件。这对于具有嵌套源目录(多个级别)的项目特别有用 请添加您键入的命令以生成makefiles并从CMake生成。此外,使用find_package()功能可能更好,请参阅此处的FindOpenGL参考:命令cmake。
在使用代码时未发现任何问题。能否尝试清理CMakeCache.txt
文件和Makefile
以及目录CMakeFiles
,如果它们存在,则清理文件cmake\u install.cmake
和CTestTestfile.cmake
。现在通过CMake.
再次运行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()