Introduction

備忘録。

実際にコンパイルするとき、インクルードディレクトリの設定がおかしいと

1
/opt/data/NcnnDotNet/src/NcnnDotNet.Native/ncnn/layer/layers/AbsVal.h:6:10: fatal error: 'layer/absval.h' file not found

のようなエラーを吐きますが、実際の所、コンパイラはどこを探索しているの? って話です。

Resolution

GCCClang ですが、それぞれ -v というオプションがあり、これを指定することで

1
2
3
4
5
6
7
8
#include "..." search starts here:
#include <...> search starts here:
/usr/llvm-gcc-4.2/bin/../lib/gcc/i686-apple-darwin11/4.2.1/include
/usr/local/include
/usr/include
/System/Library/Frameworks (framework directory)
/Library/Frameworks (framework directory)
End of search list.

みたいな詳細情報をコンパイル中に表示することが出来ます。
他にも有用な情報があります。

別のマシンやクロスコンパイルでターゲットが異なる場合でビルドに失敗する場合のデバッグに有用です。

CMakeの場合、

1
2
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} "-v")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} "-v")

このようにオプションをつけることで詳細表示が出力されます。