当我尝试使用cmake 2.8.9构建一个特定的应用程序时,一切似乎都很好。 cmake告诉我找到了所有必需的头文件和库,没有错误。但是,当我运行make
时,由于缺少头文件,构建失败。这些头文件是cmake在运行make之前几秒找到的。
我想找出为什么cmake可以找到该文件,但make不能。我该怎么调试呢?
答案 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