3

freeglut を含む「非公式 OpenGL ソフトウェア SDK」をダウンロードしましたが、動作しないようです。私はWindowsを使用しています。Visual Studio 2010 または MinGW g++ のどちらでも成功していません。私は非常に単純なテストプログラムを持っています

#include <GL/glut.h>

int main(int argc, char* argv[])
{ 
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
    glutInitWindowSize(800, 600);
    glutCreateWindow("GLUT Test");

    glutMainLoop();
    return 0;
}

今、私はそれをコンパイルしようとしています

g++ -I/c/Libraries/usr/include -L/c/Libraries/usr/lib -lfreeglut

これは私が取得し続けるエラーメッセージです。

C:\Users\Zachary\AppData\Local\Temp\cckeVUNm.o:gluttest.cpp:(.text+0x1c): undefined reference to `_imp____glutInitWithExit@12'
C:\Users\Zachary\AppData\Local\Temp\cckeVUNm.o:gluttest.cpp:(.text+0x3e): undefined reference to `_imp____glutCreateWindowWithExit@8'
C:\Users\Zachary\AppData\Local\Temp\cckeVUNm.o:gluttest.cpp:(.text+0x60): undefined reference to `_imp____glutCreateMenuWithExit@8'
C:\Users\Zachary\AppData\Local\Temp\cckeVUNm.o:gluttest.cpp:(.text+0xa0): undefined reference to `_imp__glutInitDisplayMode@4'
C:\Users\Zachary\AppData\Local\Temp\cckeVUNm.o:gluttest.cpp:(.text+0xb9): undefined reference to `_imp__glutInitWindowSize@8'
C:\Users\Zachary\AppData\Local\Temp\cckeVUNm.o:gluttest.cpp:(.text+0xd2): undefined reference to `_imp__glutMainLoop@0'
collect2: ld returned 1 exit status

どちらかのファイルを削除すると、それらが見つからないというエラーが表示されるため、ヘッダー ファイルとライブラリ ファイルを見つけることができることはわかっています。ここからどこへ行けばいいのかよくわかりません。freeglut を再コンパイルしてみましたが、うまくいかないようです。

-DFREEGLUT_STATIC を追加して、静的にコンパイルしていることを知らせることについて誰かが言及しました。ただし、同じエラーメッセージが表示されました。

何かアドバイス?

これまでの回答に基づいて、コンパイルコマンドを次のように変更しました

g++ gluttest.cpp -o gluttest -I/c/Libraries/glsdk_0.4.4/freeglut/include -L/c/Libraries/glsdk_0.4.4/freeglut/lib -DFREEGLUT_STATIC -D_LIB -DFREEGLUT_LIB_PRAGMAS=0 -lgdi32 -lwinmm -luser32 -lglu32 -lopengl32 -lfreeglut

しかし、まだ同じエラーが発生しています。

4

1 に答える 1

0

ライブラリと実際にリンクする必要があります。-Lライブラリパスを設定するだけです。提供されている Premake4 ツールを使用してライブラリとリンクしていないため、前述のページの手順に記載されている定義も設定する必要があります。

于 2013-03-10T02:20:10.567 に答える