部署 dll 时我应该静态 link `opengl32.lib` 还是 `glu32.lib`
Should I statically link `opengl32.lib` or `glu32.lib` when deploying a dll
我希望我的 dll 是独立的。我有一个函数叫做:
void VisualDebug();//brings up the debug Window, calls wglCreateContext on a separate thread
是否存在潜在的问题,例如来自静态链接的 Windows 的不同版本之间:
opengl32.lib
或 glu32.lib
?
link 对抗 opengl32.lib
和 glu32.lib
是绝对安全的。这些不是实际的库,而是 linker 符号存根,它告诉 linker,正在构建的可执行文件需要 DLL opengl32.dll
和 glu32.dll
(顺便说一句,它是高度您不太可能实际需要 GLU),以便生成的 PE 二进制文件包含对这些 DLL 的引用。
DLL 本身是 Windows ABI 的一部分并且没有改变,而且它们的 public 接口也永远不会改变。
所以它不仅安全,而且在 Windows 中 link 针对 OpenGL 的实际推荐方法(您可能希望按需加载软件光栅化器回退的例外情况适用)。
我希望我的 dll 是独立的。我有一个函数叫做:
void VisualDebug();//brings up the debug Window, calls wglCreateContext on a separate thread
是否存在潜在的问题,例如来自静态链接的 Windows 的不同版本之间:
opengl32.lib
或 glu32.lib
?
link 对抗 opengl32.lib
和 glu32.lib
是绝对安全的。这些不是实际的库,而是 linker 符号存根,它告诉 linker,正在构建的可执行文件需要 DLL opengl32.dll
和 glu32.dll
(顺便说一句,它是高度您不太可能实际需要 GLU),以便生成的 PE 二进制文件包含对这些 DLL 的引用。
DLL 本身是 Windows ABI 的一部分并且没有改变,而且它们的 public 接口也永远不会改变。
所以它不仅安全,而且在 Windows 中 link 针对 OpenGL 的实际推荐方法(您可能希望按需加载软件光栅化器回退的例外情况适用)。