我无法正确地链接到glew。
我已经做了以下几点:
#define GLEW_STATIC
#include "glew/glew.h"
#pragma comment(lib, "glew/glew32s.lib")
然而,我仍然遇到了错误:
LNK2019: 无法解析的外部符号__glewGenBuffersARB,它在函数initialize中被引用。
我无法正确地链接到glew。
我已经做了以下几点:
#define GLEW_STATIC
#include "glew/glew.h"
#pragma comment(lib, "glew/glew32s.lib")
省下很多麻烦,只需将glew.c
文件放入您的项目中即可。我从不费心外部链接到glew库。一旦您将其放在那里,GLEW_STATIC
宏就会起作用。这仅是一个文件,而且(如果这对您很重要)它可以在各个平台之间顺畅地运行(而不必重新构建几个特定于操作系统的库)。
我希望通过提供更详细的答案来扩展@TheBuzzSaw的出色想法,针对一个cmake
项目。
GLEW
源码。src/glew.c
和include/GL/glew.h
)复制到您的项目目录中。glew.c
文件,使其开头看起来像这样:#ifndef GLEW_INCLUDE
#include "glew.h" /* Point to local glew.h file. */
#else
#include GLEW_INCLUDE
#endif
main.cpp
文件中使用以下内容以正确包含静态GLEW:#define GLEW_STATIC
#include "glew.h"
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)