5

I can't link properly to glew.

I have done:

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

However, I still get the error:

LNK2019: unresolved external symbol __glewGenBuffersARB referenced in function initialize

4

2 回答 2

13

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

于 2012-06-14T22:11:32.717 回答
1

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

  1. 从这里下载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)

现在,您应该能够构建您的项目而不会出现任何链接错误

于 2021-03-29T19:29:58.770 回答