Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Makefile Cmake';s生成的生成文件找不到规则_Makefile_Cmake - Fatal编程技术网

Makefile Cmake';s生成的生成文件找不到规则

Makefile Cmake';s生成的生成文件找不到规则,makefile,cmake,Makefile,Cmake,出于某种原因,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 这里发生了什么,为什么不能工作?我已

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

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

${PROJECT}应为空。我看不出你在定义它


添加一个行集(项目“spacecubes”),它应该可以很好地构建。

它是几年前发布的,我想说,当我试图同时使用add_可执行文件和add_库时,我遇到了同样的问题。。。。我也在寻找解决办法

cmake版本:2.8.7 系统:Ubuntu 12.04

更新:

嗨,我回来回答这个问题

出现这个问题是因为可执行文件和lib具有相同的目标名称,在您的例子中,它是${project},所以cmake会在makefile中生成一些错误代码


此外,对于Apple system,应用程序默认使用不区分大小写的文件系统,因此,如果您使用相同的名称并使用不同的大写或小写,则会以相同的错误结束。

能否显示CmakeList文件?哦,对不起,忘了这一点。我没有访问Apple的权限,因此,我只想指出几个问题:1)不检查
find\u library
调用是否成功(即检查
${OPENGL\u library}
${GLUT\u library}
的值)。2) 即使找到它们,您也不会使用它们-我希望在某个地方看到
target\u link\u库调用中使用
${EXTRA\u LIBS}
。3) 在执行
add\u executable
命令后,需要将现有的
target\u link\u库
移动到,否则它将失败。4)
文件(GLOB_RECURSE…)。