出于某种原因,CMake会生成一个错误的makefile:
make[2]: *** No rule to make target `CMakeFiles//Users/wen/projects/Space Cubes/src/Debug.cpp.dir/depend'. Stop.
make[1]: *** [CMakeFiles/Users/wen/projects/Space Cubes/src/Debug.cpp.dir/all] Error 2
这里发生了什么,为什么它不起作用?我已经尝试过清除缓存了。
的CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(spacecubes)
if (APPLE)
FIND_LIBRARY(OPENGL_LIBRARY OpenGL)
FIND_LIBRARY(GLUT_LIBRARY GLUT)
SET(EXTRA_LIBS ${OPENGL_LIBRARY} ${GLUT_LIBRARY})
else (APPLE)
target_link_libraries(${PROJECT} gl glu glut)
endif(APPLE)
file(GLOB_RECURSE src "src/*.cpp")
add_executable(${PROJECT} ${src})
答案 0 :(得分:2)
它是在几年前发布的,当我尝试同时使用add_executable和add_library时,我想说我遇到了同样的问题....我也在寻找解决方案。
cmake版本:2.8.7 系统:Ubuntu 12.04
更新
嗨,我回到这里回答这个问题。
问题发生的原因是可执行文件和lib具有相同的目标名称,在您的情况下,它是$ {project},因此cmake会在makefile中生成一些错误代码。
除Apple系统外,默认情况下,Apply使用不区分大小写的文件系统,因此如果您使用不同大写或小写的相同名称,它将以相同的错误结束。
答案 1 :(得分:0)
生成项目时,这应该会失败。
$ {PROJECT}应为空。我不知道你在哪里定义它。
添加一个线集(PROJECT" spacecubes"),它应该可以正常构建。