我在Windows API中使用哪些OpenGL库?

时间:2015-01-05 13:34:59

标签: winapi opengl

使用windows api编程时遇到了问题。我想在我的项目中使用OpenGL的着色器功能。我将GLFW包含在我的项目中并将其链接起来,但是出现了这个错误。

warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library

我应该在Windows API中使用GLWF,还是应该完全使用其他东西?

2 个答案:

答案 0 :(得分:1)

您遇到的问题是由您尝试使用与链接程序要与程序链接的CRT链接的GLFW二进制文件引起的。特别是你所拥有的GLFW brew似乎是使用Visual Studio 6的VC ++编译器或更早的 MinGW编译器构建的。

由于现代的MSVC ++编译器拒绝与系统MSVCRT链接而没有跳过一些严重的箍(但你必须使用Windows DDK编译器),你可以选择以下两个选项:

  • 获取CRT已静态链接到的GLFW的DLL版本
  • 使用您现在使用的编译器构建GLFW的DLL版本
  • 构建GLFW的静态链接库变体并将其静态链接到您的程序(静态库构建通常不依赖于特定的CRT)。

答案 1 :(得分:-4)

首先,您为什么要使用Windows API?如果您正在使用OpenGL,那么像GLFW这样的多平台API将是明智的,因为它会为您处理Windows API的内容。如果您想使用Windows API,那么这是您的选择,与GLFW相同。但请记住不要将两者混合在一起,否则会发生冲突。在我看来,如果你使用GLFW,你的代码将可以移植到其他操作系统。