在c中链接到glew

时间:2012-06-14 05:59:18

标签: c windows opengl glew

我无法正确链接到glew。

我做了:

#define GLEW_STATIC
#include "glew/glew.h"
#pragma comment(lib, "glew/glew32s.lib")

但是,我仍然收到错误:

LNK2019:函数initialize中引用的未解析的外部符号__glewGenBuffersARB

2 个答案:

答案 0 :(得分:12)

为自己保存一个很多的麻烦,只需将glew.c文件放入您的项目中即可。我从不打扰外部链接到glew库。一旦你在那里,GLEW_STATIC宏将工作。它只是一个文件,并且(如果这对您很重要)它将跨平台很好地运行(而不是必须重建几个特定于操作系统的库)。

答案 1 :(得分:0)

我想通过为 cmake 项目提供更详细的答案来扩展出色的 @TheBuzzSaw 想法。

  1. here 下载 GLEW 源。
  2. 解压存档并将两个文件(src/glew.cinclude/GL/glew.h)复制到您的项目目录中。
  3. 编辑 glew.c 使文件的开头看起来像这样:
#ifndef GLEW_INCLUDE
#include "glew.h"  /* Point to local glew.h file. */
#else
#include GLEW_INCLUDE
#endif
  1. 在您的 main.cpp 文件中使用以下内容以正确包含静态 GLEW:
#define GLEW_STATIC
#include "glew.h"
  1. 要构建项目,您必须编译并链接静态 GLEW 库。使用复制文件的示例 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.17)
project(your-project-name)

add_library(STATIC_GLEW glew.c)
add_executable(your-project-name main.cpp)


target_link_libraries(your-project-name STATIC_GLEW)

现在,您应该能够在没有任何链接错误的情况下构建项目 ?