C ++ Make show包含搜索文件的位置

时间:2013-07-17 03:07:42

标签: c++ makefile cmake

我正在尝试使用cmakemake编译库的一部分。当我运行包含失败的Make时,我收到错误:

/home/user/Sean/PCL/pcl/apps/src/face_detection/openni_face_detection.cpp:9:57: fatal error: pcl/apps/face_detection/openni_frame_source.h: No such file or directory compilation terminated.

我知道使用gcc,您可以让编译器向您读取包含它的位置,但是有没有办法通过makecmake完成此操作。

2 个答案:

答案 0 :(得分:2)

如果CMake自动生成Makefile,您可以像这样启动make

> make VERBOSE=1

将目标的进展与正在执行的实际命令make交错。 从这些命令中,您应该能够提取当前包含路径。

您可能想要查看include_directories CMake命令, 如果某些包含路径丢失。

答案 1 :(得分:0)

我正在使用mingw32在SUSE Linux上交叉编译Win32目标。传统的详细/调试选项都没有提供#include搜索路径。

这迫使我(懒惰的)手手动再现最终显示标题搜索路径的编译操作。

简要说明...

  • 运行make操作并记下正在执行的编译器目录命令行。是的,这很混乱,但并非不可能。如果没有头,则将输出捕获到文件中。
  • 切换到目录
  • 使用--help选项执行编译器。注意其 verbose 选项。
  • 运行指定 verbose 选项的compile命令。

这就是我得到的...

#include "..." search starts here:
#include <...> search starts here:
 /home/me/rpmbuild/BUILD/the-app-0.0.0/core/src/win32/include
 /home/me/rpmbuild/BUILD/the-app-0.0.0/core/src/win32/compat/include
 /home/me/rpmbuild/BUILD/the-app-0.0.0/core/src
 /home/me/rpmbuild/BUILD/the-app-0.0.0/core/src/win32/generic
 /home/me/rpmbuild/BUILD/the-app-0.0.0/core/src/win32/filed
 /usr/lib64/gcc/x86_64-w64-mingw32/8.2.0/include/c++
 /usr/lib64/gcc/x86_64-w64-mingw32/8.2.0/include/c++/x86_64-w64-mingw32
 /usr/lib64/gcc/x86_64-w64-mingw32/8.2.0/include/c++/backward
 /usr/lib64/gcc/x86_64-w64-mingw32/8.2.0/include
 /usr/lib64/gcc/x86_64-w64-mingw32/8.2.0/include-fixed
 /usr/x86_64-w64-mingw32/sys-root/mingw/include
End of search list.

还不错...

顺便说一句,这是cmake 3.5.2的配置。