やあ、
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.hとshader_manager.hに嬉しいだけを含め
ありがとうございました。
ところで、私はGLADが提供するOpenGLヘッダーを含めたことを述べていることを完全に理解していますが、これは非常に具体的にコードを壊します。
コンパイラが見つけたエラー手段がgl.h
前に含まglad.h
任意の依存関係、最も可能性の高いGLFWによることができ、含まれています。
単純なインクルードグラフ:
main.cpp
はcore/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:
最も参考になるコメント
コンパイラが見つけたエラー手段が
gl.h
前に含まglad.h
任意の依存関係、最も可能性の高いGLFWによることができ、含まれています。単純なインクルードグラフ:
main.cpp
はcore/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が必要な場合は常に、これらのヘッダーのいずれかを含めます。