无法使用Mingw静态链接到glewInit()

时间:2014-01-15 21:13:35

标签: hyperlink mingw glew

我目前正在使用GLEW构建程序,使用MinGW(在Eclipse中)编译。我从GLEW网站提供的源代码中构建了GLEW库。

如果我链接到.DLL,我已经能够使用GLEW声明的函数而没有问题。但是,如果我尝试使用定义了“GLEW_STATIC”标志的静态库(libglew32.a)进行链接,则会出现函数“glewInit()”的错误:

imp _glewInit @ 0'

的未定义引用

如果我在十六进制编辑器中打开libglew32.a,我可以看到有一个条目,但它名为_glewInit @ 0。所以似乎断开连接是我的程序编译试图将这个“ imp ”字符串附加到库中函数名的前面。

这里似乎必须存在调用约定的不匹配,但我不知道会导致它的原因。根据设置的编译器定义,GLEW在标头中声明api函数肯定有很多不同的方法,但我还没有缩小它。

有任何想法吗?

1 个答案:

答案 0 :(得分:0)

对于要在运行时从.DLL加载的函数存根,似乎添加了 imp 前缀。换句话说,我实际上并没有静静地链接GLEW。事实证明,我没有正确设置我的eclipse C ++符号,因此没有定义GLEW_STATIC。确定它是在g ++调用中设置的,它链接就好了。