2012-04-18 108 views
1

我想获得(或从源代码构建)静态链接到Windows上的crt的OpenGL库。Windows上的静态链接的OpenGL库

我不希望我的可执行文件需要OPENGL32.dll。

我的编译器的Visual C++ 9

我从哪里开始? OpenGL网站将我引导到这个wiki http://www.opengl.org/wiki/Getting_started 但是这个wiki告诉我:“在所有三个主要的桌面平台(Linux,MacOS X和Windows)中,OpenGL都或多或少都带有这个系统”。 我在Windows上。这种说法是否属实。我如何验证这一点?

+1

[进一步下载](http://www.opengl.org/wiki/Getting_started#Writing_an_OpenGL_Application)您发布的页面,它会告诉您关于'opengl32.lib'的信息。 – 2012-04-18 12:54:54

+0

@彼得伍德我看到了。是opengl32.lib链接到静态crt?我不希望我的可执行文件需要OPENGL32.dll才能运行 – user841550 2012-04-18 13:14:15

+1

为什么你不想'opengl32.dll'成为依赖项?它包含在所有主要的Windows系统上。你不必自己发布它。 – 2012-04-18 13:43:37

回答

1

我相信你所说的是,你不想被迫使你的应用程序与C运行时库动态链接(即在属性/ C++ /代码生成/运行时库中的多线程DLL或多线程调试DLL设置)。

因为OpenGL是一个提供的.DLL系统,所以在使用OpenGL时,您仍然可以为运行时库自由选择多线程或多线程调试(这两个选项都静态链接到C运行时)。

3

静态链接在Windows

OpenGL库,我不希望我的可执行文件,要求OPENGL32.DLL。

不可能。故事结局。 opengl32.dll由Microsoft提供,可能在每次系统更新后都会更改。所以你不能静态链接它 - 它是一个系统组件。

您只能与模拟CPU上的OpenGL的mesa3d进行静态链接。但是,它不完全符合OpenGL,因此您可能会遇到意想不到的问题,并且您仍然需要多个系统dll。 (我的赌注是gdi32.dll)为您的应用程序。而且,与普通的OpenGL相比,性能会很差。