为什么我在这段代码中得到一个未定义的引用
Why am I getting an undefined reference in this code?
我正在使用Windows,我正在调用函数glGenBuffers
。当我使用它时,我得到以下错误:
error: undefined reference to _imp____glewBufferData
我正在链接我的MinGW/lib
文件夹中的glew32
dll,并且我在MinGW/include
中有glew.h
。我也把glew32.dll
放在WINDOWS/system32
文件夹中。
我是这样编译的:
mingw32-g++.exe ... -lglfw -lglfw3 -lopengl32 -lglew32 -lgdi32 -lglu32 -lglew32s
是库的顺序导致了问题吗?如果是这样,哪个应该排在另一个前面?
MinGW不像Windows的glow附带的二进制动态库,它只能在Visual c++中工作,除非你对它做了很多不必要的复杂的事情。
更简单的解决方案是从构建命令行中删除-lglew32
,保留-lglew32s
(静态库)并添加-DGLEW_STATIC
。最后一部分非常重要,因为当您执行#include "glew.h"
时,默认情况下glow会假定动态链接。必须首先定义GLEW_STATIC
,以便链接器在Windows上正确解析静态符号。
相关文章:
- 在VSCode中编译C++给了我一个未定义的参考
- 我对C++程序有一个未定义的参考,不知道如何处理它
- 为什么这是一个未定义的行为?
- 在链接链接静态(GSOAP)库的共享库时,为什么会得到一个未定义的符号
- yaml-cpp:创建一个未定义的节点
- mac构建有一个未定义的符号,而linux构建并没有用于相同的代码
- 为什么我有一个未定义的对友元函数的引用
- 对于自定义类的一个未定义集,是否有一个默认的散列函数
- 在定义之前声明一个未定义的 std::function 的目的是什么?
- 在 c++ 中对 class::function 的另一个未定义的引用
- 有没有办法放入一个未定义大小的数组并作为静态数组继承
- Android NDK:创建一个未定义函数的库
- 为什么我在这个C++代码中得到了一个未定义的引用
- LoopFillZerobss对main有一个未定义的引用
- 为一个未定义的映射打开MP/_gno_parallel
- 休斯顿,我们有一个未定义的参考
- 另一个未定义的引用错误
- g++说我对一个函数有一个未定义的引用
- ostringstream是一个未定义的类型
- 对boost::system::generic的另一个未定义引用