①simple_window.cpp
#include <GL/glut.h> // ライブラリ用ヘッダファイルの読み込み // 表示部分をこの関数で記入 void display(void) { glClearColor (1.0, 1.0, 1.0, 1.0); // 消去色指定 glClear (GL_COLOR_BUFFER_BIT ); // 画面消去 /* ここに描画に関するプログラムコードを入れる */ glFlush(); // 画面出力 } // メインプログラム int main (int argc, char *argv[]) { glutInit(&argc, argv); // ライブラリの初期化 glutInitWindowSize(400 , 400); // ウィンドウサイズを指定 glutCreateWindow(argv[0]); // ウィンドウを作成 glutDisplayFunc(display); // 表示関数を指定 glutMainLoop(); // イベント待ち return 0; }
②コンパイル
C:\Users???\Documents\program\C++> g++ simple_window.cpp -o simple_window -lfreeglut -lglu32 -lopengl32
openGLを学習中の者です。
①のコードを②のようにコンパイルしたのですが、いくつか疑問が生じたので質問させていただきます。
1,ヘッダファイルglut.hをインクルードしたのですが、コンパイラはどのようにこのglut.hのパスを見つけているのでしょうか?
2,コンパイル時にリンカオプション"-l"でlfreeglut、lglu32、lopengl32を指定しましたが、このリンカオプション"-l"は、ここでいうとlibfreeglut.a、libglu32.a、libopengl32.aという.a拡張子のライブラリファイルを探すように指定しているのですか、それとも.dll、.aなどの拡張子を持つライブラリファイルの中から、指定したファイル名のファイルを探しているのですか?
またその場合、どのようにファイルのパスを探すのでしょうか?
ちなみに使用したファイルのパスは以下の通りです。
C:\Users???\Documents\program\C++\simple_window.cpp
C:\Users???\Documents\インストーラー\freeglut-MinGW-3.0.0-1.mp\freeglut\include\GL\glut.h
C:\Users???\Documents\インストーラー\freeglut-MinGW-3.0.0-1.mp\freeglut\lib\libfreeglut.a
C:\Windows\SysWOW64\opengl32.dll
C:\Windows\SysWOW64\glu32.dll
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/03 09:02