如何在静态lib中使用opengl?

边境

我正在尝试使用OpenGL创建静态着色器库。我希望它尽可能地可移植(Windows Linus Android ...)。对于这个提议,我做了一个包含gl和glext的头文件:OpenGL.hpp

...
#define GL_GLEXT_PROTOTYPES
#if defined(OS_WINDOWS)

    #ifdef _MSC_VER
        #include <windows.h>
    #endif

    #include <GL/gl.h>
    #include <GL/glext.h>

#elif defined(OS_LINUX)

    #include <GL/gl.h>
    #include <GL/glext.h>
...

和Shader.hpp

...
class Shader
{
    unsigned int m_id;
public:
    Shader();
    ...
};
...

和Shader.cpp

...
#include <Shader.hpp>
#include <OpenGL.hpp>
Shader::Shader()
{
    m_id = glCreateProgram();
    ...
}
...

然后遵守Shader.cppShader.oar创建libShader.a之后在android上我可以像这样编译:

g++ -I ./include -c main.cpp -o main.o
g++ -L ./lib -o main main.o -lShader -lSDL2 -lGLESv1_CM -lGLESv2

而且运行无懈可击。但是在Windows上,当我链接时

g++ -L ./lib -o main.exe main.o -lShader -lSDL2 -lglew32 -lopengl32 -lglu32

G ++给出了lib\libShader.a(Shader.o):Shader.cpp undefined reference to glCreateProgram@8错误。在Windows上,main.cpp看起来像这样:

#include <GL/glew.h>
#include <Shader.hpp>
...
int main()
{
    Shader shader1;
    ...
    GLuint test_id_for_main = glCreateProgram();
    ...
}
...

奇怪的是test_id_for_main工作(如果我注释掉Shader-s)而没有链接错误。我在Windows上做错了什么?

边境

我最终创建了自己的OpenGL标头,并使用wgl / glx / dlopen加载了函数

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在graphstream中使用静态布局

来自分类Dev

如何在反应中使用静态数据

来自分类Dev

如何在静态功能中使用模板?

来自分类Dev

如何在静态类中使用 getFragmentManager()

来自分类Dev

如何在静态NestedClass中使用非静态OuterClass变量?

来自分类Dev

如何在opengl中使用.raw文件

来自分类Dev

如何在Java中使用Opengl / DirectX

来自分类Dev

OpenGL:如何在Qt中使用glMapBuffer?

来自分类Dev

如何在Python中使用OpenGL的glMapBuffer?

来自分类Dev

如何在Qt OpenGL中使用PBO

来自分类Dev

如何在C#项目中使用LIB文件?

来自分类Dev

如何在gcc中使用库“ .lib”和“ .a”文件

来自分类Dev

如何在MATLAB MEX文件中使用FFTW lib文件?

来自分类Dev

如何在Swift项目中使用Superpowered lib

来自分类Dev

如何在C#项目中使用LIB文件?

来自分类Dev

如何在MATLAB MEX文件中使用FFTW lib文件?

来自分类Dev

如何在/ usr / lib / systemd /中使用systemd服务?

来自分类Dev

如何在静态类型中使用using指令

来自分类Dev

如何在HTML按钮中使用静态的onclick参数?

来自分类Dev

如何在Qt 5.2中使用静态库?

来自分类Dev

如何在C中使用#define定义静态矩阵?

来自分类Dev

如何在静态类中使用IHttpContextAccessor设置cookie

来自分类Dev

如何在MFC中使用Picture Control静态显示图片?

来自分类Dev

如何在Google静态地图中使用API密钥?

来自分类Dev

我如何在php多线程中使用静态方法

来自分类Dev

如何在父母静态方法中使用孩子的变量?

来自分类Dev

如何在Cassandra中的群集键中使用静态列

来自分类Dev

如何在kotlin中使用reflect访问静态字段?

来自分类Dev

如何在静态codeandbox模板中使用脚本?

Related 相关文章

热门标签

归档