GLEW - 我为什么要定义 GLEW_STATIC?
GLEW - why should I define GLEW_STATIC?
我正在为 GLEW 使用静态链接库,因此我必须定义 GLEW_STATIC 来编译我使用 GLEW 的程序。但我一直不明白为什么这是必要的。那么谁能解释一下原因?
在必须指定的静态库中实现函数时。 extern
keyword provides linkage information. A function which is imported from a dynamic library has to be marked by extern __declspec(dllimport)
。 GLEW_STATIC
是激活第一种情况的预处理器定义。
“glew.h”文件(verison 2.1.0)中的相关代码部分是:
/*
* GLEW_STATIC is defined for static library.
* GLEW_BUILD is defined for building the DLL library.
*/
#ifdef GLEW_STATIC
define GLEWAPI extern
#else
ifdef GLEW_BUILD
define GLEWAPI extern __declspec(dllexport)
else
define GLEWAPI extern __declspec(dllimport)
endif
#endif
我正在为 GLEW 使用静态链接库,因此我必须定义 GLEW_STATIC 来编译我使用 GLEW 的程序。但我一直不明白为什么这是必要的。那么谁能解释一下原因?
在必须指定的静态库中实现函数时。 extern
keyword provides linkage information. A function which is imported from a dynamic library has to be marked by extern __declspec(dllimport)
。 GLEW_STATIC
是激活第一种情况的预处理器定义。
“glew.h”文件(verison 2.1.0)中的相关代码部分是:
/*
* GLEW_STATIC is defined for static library.
* GLEW_BUILD is defined for building the DLL library.
*/
#ifdef GLEW_STATIC
define GLEWAPI extern
#else
ifdef GLEW_BUILD
define GLEWAPI extern __declspec(dllexport)
else
define GLEWAPI extern __declspec(dllimport)
endif
#endif