Glad: すでに含まれているGLAD#errorは私を狂わせています。

作成日 2017年05月14日  ·  4コメント  ·  ソース: Dav1dde/glad

やあ、

LinuxでGLADと数週間取り組んできましたが、逃げられないようです。

base / inc / core / shader_manager.h:4:0からインクルードされたファイルでは、
base / src / mainから。 cpp:17
base / inc / glad / glad.h:577:2:エラー:#error OpenGLヘッダーはすでに含まれています、このインクルードを削除してください、うれしいです
#error OpenGLヘッダーはすでに含まれています、このインクルードを削除してください、うれしいですすでにそれを提供します

私のプロジェクトのこの特定のブランチのために。 私はmesh_generator.hshader_manager.hに嬉しいだけを含め

ありがとうございました。

question

最も参考になるコメント

コンパイラが見つけたエラー手段がgl.h前に含まglad.h任意の依存関係、最も可能性の高いGLFWによることができ、含まれています。

単純なインクルードグラフ:
graph

main.cppcore/game_superclass.hが含まれ、これには非常に早い段階でcore/poll_keyboard.h含まれます。これは、glfwに依存し、次にgl.hが含まれます。後で、喜んで含まれます。しかし、この時点でgl.hはすでに含まれていました(Fuck yeah C!)。

私は定義されたGLFW_INCLUDE_NONEあなたにmain.cpp (それが含まれていませGLFWますg.h公にする)が、その後、コンパイルはしているため行方不明のタイプが失敗したcore/camera_data.h

おそらく最も簡単な修正は、 core/game_superclass.h一番上に喜んでインクルードすることです。これを処理するためのより良い方法は、最初にインクルードする最初に、glを含むヘッダーファイルとglfwを含むヘッダーファイルを作成することです。後者の2番目では、 GLFW_INCLUDE_NONE定義するか、glfwの前にglヘッダーをインクルードします。 また、glまたはglfwが必要な場合は常に、これらのヘッダーのいずれかを含めます。

全てのコメント4件

ところで、私はGLADが提供するOpenGLヘッダーを含めたことを述べていることを完全に理解していますが、これは非常に具体的にコードを壊します。

コンパイラが見つけたエラー手段がgl.h前に含まglad.h任意の依存関係、最も可能性の高いGLFWによることができ、含まれています。

単純なインクルードグラフ:
graph

main.cppcore/game_superclass.hが含まれ、これには非常に早い段階でcore/poll_keyboard.h含まれます。これは、glfwに依存し、次にgl.hが含まれます。後で、喜んで含まれます。しかし、この時点でgl.hはすでに含まれていました(Fuck yeah C!)。

私は定義されたGLFW_INCLUDE_NONEあなたにmain.cpp (それが含まれていませGLFWますg.h公にする)が、その後、コンパイルはしているため行方不明のタイプが失敗したcore/camera_data.h

おそらく最も簡単な修正は、 core/game_superclass.h一番上に喜んでインクルードすることです。これを処理するためのより良い方法は、最初にインクルードする最初に、glを含むヘッダーファイルとglfwを含むヘッダーファイルを作成することです。後者の2番目では、 GLFW_INCLUDE_NONE定義するか、glfwの前にglヘッダーをインクルードします。 また、glまたはglfwが必要な場合は常に、これらのヘッダーのいずれかを含めます。

ああ私は忘れました:

diff --git a/Makefile b/Makefile
index 2f3ae96..178e42e 100755
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 #Libs to link against
-GRAPHICSLIBS = -lX11 -lXxf86vm -lXrandr -lXi -lGL -lGLU -lGLEW
+GRAPHICSLIBS = -lX11 -lXxf86vm -lXrandr -lXi -lGL -lGLU -ldl
 PTHREADLIBS = -lm -lpthread
 RMF = rm -f
 EXE = avgame
diff --git a/base/inc/core/game_superclass.h b/base/inc/core/game_superclass.h
index 298e79b..10fba05 100644
--- a/base/inc/core/game_superclass.h
+++ b/base/inc/core/game_superclass.h
@@ -1,6 +1,7 @@
 #ifndef _AVGAME_SUPER_
 #define _AVGAME_SUPER_

+#include <glad/glad.h>
 #include <core/poll_mouse.h>
 #include <core/poll_keyboard.h>
 #include <core/game_debug.h>

プロジェクトをコンパイルするdiff。

どうもありがとう@ Dav1dde ! これは素晴らしい! 詳細な説明もありがたいです。 :+1:

このページは役に立ちましたか?
0 / 5 - 0 評価