12

Windows 8で実行されているMinGW(CodeBlocks IDE経由)でGLEWバージョン1.10.0を使用しています。GLEW WebサイトからWindowsバイナリをダウンロードし、そのビルドに含まれるライブラリにリンクしています。

答えが見つからないように見えるリンクの問題があります。GLEWホームページのインストールに従いました。glew32.lib へのリンカ、および opengl32 や glu32 などの他の必要なライブラリを参照しました。

残念ながら、このコードをコンパイルすると (コンテキスト/ウィンドウ管理にも GLFW を使用しています):

#include <stdio.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>

#define TRUE 1
#define FALSE 0

int main()
{
GLFWwindow *window;

if (!glfwInit())
    return -1;

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3.0);
window = glfwCreateWindow(640, 480, "Hello World!", NULL, NULL);

if (!window)
{
     glfwTerminate();
     return -1;
}

glfwMakeContextCurrent(window);

// Initialize GLEW
glewExperimental=TRUE;
GLenum err = glewInit();
if (err!=GLEW_OK)
    fprintf(stderr, "Could not initialize GLEW!");

printf("%s\n", glGetString(GL_VERSION));
while (!glfwWindowShouldClose(window))
{
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glClear(GL_COLOR_BUFFER_BIT);

    glfwSwapBuffers(window);

    glfwPollEvents();
}

glfwTerminate();
return 0;
}

エラーが発生します:

* imp _glewExperimentalへの未定義の参照*

私が理解する限り、私は C に慣れていませんが、これは定義のないものを参照していることを意味します。これは通常、ライブラリが欠落していることを意味します。ただし、この場合、ライブラリを含めましたが、 glewInitなど、私が作成した他の GLEW 参照についてはまったくエラーが発生しませんでした。

ウェブを検索しようとしましたが、この問題について何も見つかりませんでした。

誰でもアイデアはありますか?:)

皆様、お忙しい中ありがとうございました。それは非常に高く評価されています。

4

2 に答える 2

15

問題を解決したようです。知りたい人にとっては、問題はGLEW Webサイトからのビルド前のWindowsバイナリであったようです。これは、Visual Studio(.libファイル)に由来するためです。MinGW を使用してコンパイルを行っていました。MinGW を使用して自分で GLEW をコンパイルして .a アーカイブを作成しようとするとすぐに、うまくいきました。

MinGW 用に GLEW をコンパイルする方法については、stackoverflow で既に優れた回答があり、ここで見つけることができます

于 2013-07-30T16:16:15.897 に答える