1

を含む C++ ファイルをコンパイルしていますglui.h。これには、glut.h次のようなものが含まれます。

#include <GLUT/glut.h>

私の C++ ファイルは、CMake と Makefile を使用して正常にコンパイルされます。

ただし、どのコピーglut.hが含まれているかはわかりません。コンパイル時に、GLUT/glut.h見つかったコンピューター上の場所を見つけることはできますか? それが違いを生む場合、私はこれをOSX 10.8でg ++でコンパイルしています。

(これには明らかに OpenGL と GLUT に関連する特定の回答がありますが、将来あいまいな s を解決するのに役立つ一般的な回答を特に探していincludeます)

4

3 に答える 3

4

コンパイル時に -E フラグを g++/gcc に追加するだけで、プリプロセッサの出力が得られます。これにより、どのヘッダー ファイルがフル パスで含まれているかがわかります。

于 2013-10-02T20:53:48.470 に答える
2

先日この問題が発生し、次のように解決しました。

$ gcc -E writefile.c | grep stdio.h
# 1 "/usr/include/stdio.h" 1 3 4
# 28 "/usr/include/stdio.h" 3 4
# 29 "/usr/include/stdio.h" 2 3 4
# 35 "/usr/include/stdio.h" 2 3 4
# 37 "/usr/include/stdio.h" 2 3 4
# 45 "/usr/include/stdio.h" 3 4
# 65 "/usr/include/stdio.h" 3 4
# 75 "/usr/include/stdio.h" 3 4
# 76 "/usr/include/stdio.h" 2 3 4

(明らかに、私が仕事で探していたファイルは ではありませんでしstdio.hたが、おわかりでしょう)

于 2013-10-02T21:15:12.480 に答える
1

You can use pragma message to indicate source file locations, along with other diagnostic info.

#pragma message "Using file at: " __FILE__
于 2013-10-02T21:02:26.347 に答える