3

#include-s の順序が重要であることを覚えています。うーん、ちょっと困った。次の 2 つのヘッダーがあります。

#include <gl/glfw.h>
#include <gl/glew.h>

それを実行すると、glew.h の前に gl.h が含まれているというエラーが表示されます。しかし、glew.h が最初になるようにこれら 2 つの順序を逆にすると、大量のエラーが発生します。#define-s の意味を突き止めることを考えていたので、次のように言えます: #define whatineed 0x0000x.

  1. ヘッダーの配置でこの問題を解決するにはどうすればよいですか。
  2. 私の定義を探して安全にする方法はありますか?
4

2 に答える 2

3

最初に GLEW ヘッダーをインクルードすると、どのようなエラーが発生しますか?

GLEW ヘッダーは、ほとんどの GL ヘッダーのインクルードを無効にするために必要なすべての魔法を定義するため、GLFW ヘッダーが機能する前に GLEW ヘッダーをインクルードします。Linux、Windows、およびMac OS Xで、ネイティブGCC、Clang、MinGW、Cygwin、およびVC ++を使用して、これを何年にもわたって正常に使用してきたようにすべきです。それは公式のFAQでもあります:

http://www.glfw.org/faq.html#can-i-use-extension-loaders-with-glfw

于 2011-04-24T21:48:55.227 に答える
1

主な問題は、glfw.h には、その「エラー」を無視し続けるのではなく、gl.h が既に含まれているかどうかをテストし、含まれている場合は失敗する明示的なチェックがあることです。私のバージョンのライブラリのヘッダーからそのコードをコメントアウトするだけで終わりました。

于 2011-04-28T00:44:27.393 に答える