调试make和cmake?

时间:2014-06-12 14:41:30

标签: linux debugging gcc makefile cmake

当我尝试使用cmake 2.8.9构建一个特定的应用程序时,一切似乎都很好。 cmake告诉我找到了所有必需的头文件和库,没有错误。但是,当我运行make时,由于缺少头文件,构建失败。这些头文件是cmake在运行make之前几秒找到的。

我想找出为什么cmake可以找到该文件,但make不能。我该怎么调试呢?

1 个答案:

答案 0 :(得分:2)

听起来CMake通过运行Find模块“找到”标题,该模块在磁盘上查找文件并将其存储在CMake变量中。然后必须使用这些变量来配置CMakeList中定义的目标,并且可能在CMakeList中缺少此步骤。检查CMakeList中的所有find_package()次呼叫,并确保在必要时使用其结果。

这是一个如何寻找简单库(GLUT)的例子:

find_package(GLUT)  # find GLUT

include_directories(${GLUT_INCLUDE_DIR})  # use variable set up by find_package() call

add_target(MyGlutUsingProgram main.cpp)

target_link_libraries(${GLUT_LIBRARIES})  # use variable set up by find_package() call