1

出于某种原因,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})
4

2 回答 2

2

它是几年前发布的,当我尝试同时使用 add_executable 和 add_library 时,我想说我遇到了同样的问题......我也在寻找解决方案。

cmake 版本:2.8.7 系统:Ubuntu 12.04

更新:

你好,我又来回答这个问题了。

出现问题是因为可执行文件和 lib 具有相同的目标名称,在您的情况下,它是 ${project},因此 cmake 在 makefile 中生成了一些错误代码。

另外对于Apple系统,Apply默认使用不区分大小写的文件系统,所以如果你使用同名不同大小写的文件,会以同样的错误结束。

于 2017-01-30T10:55:54.797 回答
0

当您生成项目时,这应该会失败。

${PROJECT} 应该为空。我没有看到你在哪里定义它。

添加一个线组(PROJECT "spacecubes"),它应该可以正常构建。

于 2014-02-21T12:14:17.280 回答