質問編集履歴

1 誤字

witchy

witchy score 72

2018/10/03 10:42  投稿

gccによるコンパイルについて
①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;
}
```
②コンパイル
```ここに言語を入力
g++ simple_window.cpp -o simple_window -lfreeglut -lglu32 -lopengl32
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というライブラリファイルを探すように指定しているのですか、それとも.dll、.aなどの拡張子を持つライブラリファイルの中から、指定したファイル名のファイルを探し絵いるのですか?
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
  • C++

    5122 questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • C

    5246 questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

  • g++

    22 questions

    g++はGNUコンパイラコレクション(gcc)のC++コンパイラーです。

  • GCC

    205 questions

    GCCはGNU Compiler Collectionの略です。LinuxのC言語コンパイラのデファクトスタンダードであり、数多くの他言語やプラットフォームサポートもします。

  • コンパイル

    99 questions

    コンパイルとは、プログラミング言語のテキストソース(ソースコード)をコンピュータ上で実行可能な形式(オブジェクトコード)に変換することをいいます

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る