3

このガイドを使用して、glew と freeglut を使用して openGL をセットアップしようとしています。

ステップ 7 までガイドに従いましたが、(アドバイスに従って) 本の第 1 章のコードを使用してコンパイルすると、以下のエラーが表示されます。関数 _InitWindow と _RenderFunction でエラーが発生していることはわかりますが、解決方法がわかりません。

Error   1   error LNK2019: unresolved external symbol __imp__glutInitWindowSize@8 referenced in function _InitWindow     c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj ConsoleApplication1
Error   2   error LNK2019: unresolved external symbol __imp__glutInitDisplayMode@4 referenced in function _InitWindow   c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj  ConsoleApplication1
Error   3   error LNK2019: unresolved external symbol __imp__glutMainLoop@0 referenced in function _main    c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj  ConsoleApplication1
Error   4   error LNK2019: unresolved external symbol __imp__glutPostRedisplay@0 referenced in function _RenderFunction c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj  ConsoleApplication1
Error   5   error LNK2019: unresolved external symbol __imp__glutSwapBuffers@0 referenced in function _RenderFunction   c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj  ConsoleApplication1
Error   6   error LNK2019: unresolved external symbol __imp__glutReshapeFunc@4 referenced in function _InitWindow   c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj  ConsoleApplication1
Error   7   error LNK2019: unresolved external symbol __imp__glutDisplayFunc@4 referenced in function _InitWindow   c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj  ConsoleApplication1
Error   8   error LNK2019: unresolved external symbol __imp____glutInitWithExit@12 referenced in function _glutInit_ATEXIT_HACK@8   c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj  ConsoleApplication1
Error   9   error LNK2019: unresolved external symbol __imp____glutCreateWindowWithExit@8 referenced in function _glutCreateWindow_ATEXIT_HACK@4    c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj  ConsoleApplication1
Error   10  error LNK2019: unresolved external symbol __imp__glutSetOption@8 referenced in function _InitWindow c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj  ConsoleApplication1
Error   11  error LNK2019: unresolved external symbol __imp__glutInitContextVersion@8 referenced in function _InitWindow    c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj  ConsoleApplication1
Error   12  error LNK2019: unresolved external symbol __imp__glutInitContextFlags@4 referenced in function _InitWindow  c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj  ConsoleApplication1
Error   13  error LNK2019: unresolved external symbol __imp__glutInitContextProfile@4 referenced in function _InitWindow    c:\Users\Lissau\documents\visual studio 2012\Projects\ConsoleApplication1\ConsoleApplication1\main.obj  ConsoleApplication1
Error   14  error LNK1120: 13 unresolved externals  c:\users\lissau\documents\visual studio 2012\Projects\ConsoleApplication1\Debug\ConsoleApplication1.exe ConsoleApplication1

私の main.c ファイルのコードは次のとおりです。

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <GL/glew.h>
#include <GL/freeglut.h>
#define WINDOW_TITLE_PREFIX "Chapter 1"

int CurrentWidth = 800,
    CurrentHeight = 600,
    WindowHandle = 0;

void Initialize(int, char*[]);
void InitWindow(int, char*[]);
void ResizeFunction(int, int);
void RenderFunction(void);

int main(int argc, char* argv[])
{
    Initialize(argc, argv);

    glutMainLoop();

    exit(EXIT_SUCCESS);
}

void Initialize(int argc, char* argv[])
{
    InitWindow(argc, argv);

    fprintf(
        stdout,
        "INFO: OpenGL Version: %s\n",
        glGetString(GL_VERSION)
        );

    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
}

void InitWindow(int argc, char* argv[])
{
    glutInit(&argc, argv);

    glutInitContextVersion(4, 0);
    glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
    glutInitContextProfile(GLUT_CORE_PROFILE);

    glutSetOption(
        GLUT_ACTION_ON_WINDOW_CLOSE,
        GLUT_ACTION_GLUTMAINLOOP_RETURNS
        );

    glutInitWindowSize(CurrentWidth, CurrentHeight);

    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);

    WindowHandle = glutCreateWindow(WINDOW_TITLE_PREFIX);

    if(WindowHandle < 1) {
        fprintf(
            stderr,
            "ERROR: Could not create a new rendering window.\n"
            );
        exit(EXIT_FAILURE);
    }

    glutReshapeFunc(ResizeFunction);
    glutDisplayFunc(RenderFunction);
}

void ResizeFunction(int Width, int Height)
{
    CurrentWidth = Width;
    CurrentHeight = Height;
    glViewport(0, 0, CurrentWidth, CurrentHeight);
}

void RenderFunction(void)
{
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glutSwapBuffers();
    glutPostRedisplay();
}
4

1 に答える 1

6

チュートリアルの手順を何度もやり直したがうまくいかなかったので、フリースタイルで答えを見つけました (チュートリアルにはありませんでした)。

私の問題は、追加のライブラリ ディレクトリ パスが、lib ファイルのパスに設定されていないことでした。これを変更するには、プロジェクトを右クリックし、ドロップダウンから [すべての構成] を選択してから、[リンカー] -> [一般] -> [追加のライブラリ ディレクトリ] -> [編集] に移動します。私の場合、「C:\Program Files %28x86%29\Microsoft SDKs\Windows\v8.0A\Lib」に設定しました。

于 2013-04-16T08:53:54.350 に答える