この投稿は初心者向けです。 Visual Studioの構成はカバーしていません 。 彼は、OpenGLアプリケーションをコンパイルするためにいくつかのテキストエディターを構成する方法、またはコンソールから手動でこれを行う方法を教えます。最近、ついに、
OpenGLプログラミングガイドの
第8版がリリースされました。私は2年以上待っていました。 以前、すばらしいSublime Text 2テキストエディターに出会い、重いVisual Studioをインストールする代わりに、それを構成することにしました。
そのため、まず最初に
コンパイラが必要です
-G ++に決めました。 これは
GCCの一部であり、Windowsポートは
MinGWと呼ばれます。 それから始めましょう:
ミンウ
公式サイトから
インストーラーをダウンロードし
て実行します。 インストール中に新しいパッケージをすぐにダウンロードするか、後で手動で更新するかを選択できます。 Fortran、Ada、ObjCコンパイラは必要ありません。これらは省略できます。 MSYS Basic Systemが便利になるかもしれません。 アドレスとして「
C:\MinGW
」を指定しましたが、気になる場合は、別のアドレス、たとえば「
C:\Program Files\Common Files\MinGW
」を選択できます。
インストール後、2つの新しいフォルダーを
PATH システム変数に追加し
ます :「
MinGW\bin
」および「
MinGW\msys\1.0\bin
」。 これを行うには、
[スタート]-> [コントロールパネル]-> [システム]-> [システムの詳細設定]に移動します。 [
詳細設定 ]タブで、下の[
環境変数 ]ボタンを押します。 システム変数のリストから「
パス 」を選択し、セミコロンを介して「
MinGW\bin
」および「
MinGW\msys\1.0\bin
」フォルダーに
完全なアドレスを追加します。
インストール中に新しいパッケージをダウンロードすることを選択しなかった場合は、必要なパッケージを手動で更新する必要があります。 これを行うには、コンソールを開き(
Win + R- >
cmd
)、次のコマンドを記述します。
mingw-get update
利用可能なパッケージに関する情報を更新します。
mingw-get show g mingw-get show g++
gccおよびg ++パッケージのフルネームを表示し、
mingw-get upgrade mingw32-gcc mingw-get upgrade mingw32-gcc-g++
これらのパッケージをMinGWで利用可能な最新バージョンに更新します。
コンパイラができたので、必要なOpenGLライブラリのインストールを進めることができます。
フリーグルト
OpenGLはグラフィックスのみに適用されるAPIであるため、ウィンドウの作成や入力デバイスの処理のための関数は含まれていません。 さらに、この問題の解決策はオペレーティングシステムによって異なります。 したがって、それは別のライブラリに取り込まれ、
GLUT -OpenGL Utility Toolkitと呼ばれました。 ただし、このライブラリの最後のリリースはかなり前のことでしたが、現在は
freeglutに置き換えられてい
ます 。
公式Webサイトから
MinGWのバイナリをダウンロードし
ます 。 「
C:\Windows\System32
」(x86の場合)または「
C:\Windows\SysWOW64
」(x64の場合)、または
PATHで指定されているその他のフォルダーにある
bin
フォルダーから
freeglut.dll
します。
include
フォルダーと
lib
フォルダーの内容は、「
MinGW\include
」と「
MinGW\lib
」(簡単になります)、または作成されたフォルダー「
MinGW\freeglut\include
」と「
MinGW\freeglut\lib
」を
MinGW\freeglut\lib
ます。
それはすべてfreeglutです。 有効にするには、
#include <GL/freeglut.h>
追加し
#include <GL/freeglut.h>
輝いた
glewライブラリを使用
すると、ビデオカードがサポートするものとしないものを判別でき
ます 。 私たちの場合、そのインストールはもう少し複雑です。
公式サイトから
ソースをダウンロードします。これは、バイナリがVisual Studio用に強化されており、動作しないためです。 次に、これらのソースをコンパイルする必要があります。 私はこれについてほとんど何も理解していないので、Googleに目を向け、
ここで助けを見つけまし
た :
ダウンロードしたアーカイブを解凍し、コンソールを開き、結果のフォルダーに移動して、次のコマンドを記述します。
gcc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude -DGLEW_BUILD -o src/glew.o -c src/glew.c gcc -shared -Wl,-soname,libglew32.dll -Wl,--out-implib,lib/libglew32.dll.a -o lib/glew32.dll src/glew.o -L/mingw/lib -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 ar cr lib/libglew32.a src/glew.o
その結果、libフォルダーに3つのファイル
glew32.dll
、
glew32.dll.a
および
glew32.a
。
glew32.dll
コピーしたのと同じ場所に
glew32.dll
コピーします。残りの2つは、フォルダー「
MinGW\lib
」または「
MinGW\glew\lib
」にあります。
include
フォルダーから、コンテンツを「
MinGW\include
」または「
MinGW\glew\include
」にコピーします。
それはすべて光り輝いています。 有効にするには、
#include <GL/glew.h>
を追加する必要がありますが、他のglライブラリを接続する
前にこれを行う必要があります。
パフォーマンスを確認する
最小限のtest.cppを作成します。
#include <iostream> #include <GL/glew.h> #include <GL/freeglut.h> #include <GL/gl.h> int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA); glutInitWindowSize(512, 512); glutInitContextVersion(4, 1); // OpenGL, glutInitContextProfile(GLUT_CORE_PROFILE); glutCreateWindow(argv[0]); if (glewInit()) { std::cerr << "Unable to initialize GLEW ... exiting\n"; exit(EXIT_FAILURE); } glutMainLoop(); }
glutInitContextVersion関数に注意して
ください-OpenGLの指定されたバージョンのコンテキストの作成に失敗した場合、プログラムを終了します。 ビデオカードがサポートするOpenGLのバージョンを確認するには、その仕様を確認するか、
公式サイトから
glewinfo.exe
バイナリをダウンロードして、
bin
フォルダーから
glewinfo.exe
を実行します。
glewinfo.txt
ファイルが生成されます。このファイルには、ビデオカードがサポートするものとしないものの詳細が記載されています。 最新のビデオドライバをインストールすることにより、機能を拡張できる場合があります。
コンソールを開き、
test.cpp
があるフォルダーに移動して、次のコマンドを記述します。
g++ -o test.exe test.cpp -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows
freeglut
glew
と
freeglut
glew
別々に作成した場合は、適切な追加の
include
フォルダーと
lib
フォルダーをここでさらに指定する必要
include
あります。 次に、コマンドの例は次のようになります。
g++ -o test.exe test.cpp -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows -I"C:\MinGW\freeglut\include" -L"C:\MinGW\freeglut\lib" -I"C:\MinGW\glew\include" -L"C:\MinGW\glew\lib"
-Wl,--subsystem,windows
フラグは、コンソールではなくグラフィカルアプリケーションを作成するようコンパイラーに指示します。
すべてが
test.exe
場合、
test.exe
ファイルを
test.exe
する必要があります。これは、起動すると、白い512x512ウィンドウを作成します。
アプリケーションを共有する場合は、実行可能ファイルとともに、使用するライブラリ
freeglut.dll
および
glew32.dll
を転送することを確認して
glew32.dll
。
崇高なテキスト2
最後に、Sublimeのセットアップ例を示します。
ここからダウンロードできます、英語の入門ビデオチュートリアルは
ここで見ることができ
ます 。
インストール後、C ++ビルド構成ファイルを開きます。
"
C:\Users\%Username%\AppData\Roaming\Sublime Text 2\Packages\C++\C++.sublime-build
"
名前を付けてコピーを保存します
"
C:\Users\%Username%\AppData\Roaming\Sublime Text 2\Packages\User\C++\++ OpenGL.sublime-build
"
行
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}"],
ライブラリを接続することにより補完されます:
"cmd": ["g++", "${file}", "-o", "${file_path}/${file_base_name}", "-lfreeglut -lopengl32 -lglew32 -Wl,--subsystem,windows"],
同様に、行
"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' && '${file_path}/${file_base_name}'"]
補完する
"cmd": ["bash", "-c", "g++ '${file}' -o '${file_path}/${file_base_name}' -lglew32 -lfreeglut -lopengl32 -lglu32 -Wl,--subsystem,windows && '${file_path}/${file_base_name}'"]
freeglutとglewの下に個別のフォルダーを作成した場合、これらのコマンドは、追加の
include
フォルダーと
lib
フォルダーのアドレスを示すことで補足する必要があります。
Sublimeがキリル文字をコンソールに出力することを拒否しないために、
"selector": "source.c, source.c++",
加える
"encoding": "cp1251",
test.cpp
開いたので、[
ツール]-> [システムのビルド]-> [C ++ OpenGL]を選択し
ます 。
Ctrl + Bを押してコンパイルし、
Ctrl + Shift + Bを押してコンパイルして実行します。
それだけです!
UPD :最新バージョンのgl関数を使用したコードに関しては、
GL/gl.h
ヘッダーファイルを接続するだけでは不十分であることが判明しました。 古いバージョン1.1が含まれており、このファイルは更新されていません。 それに加えて、
GL/glext.h
(最新バージョンは
ここからダウンロードする必要があります)と
GL/wglext.h
(
ここから )を接続する必要があります。 Linuxの場合、最後のファイルは
GL/glxext.h
(
link )に置き換えられます。 ダウンロードしたファイルは、アドレス「
MinGW/include/GL/
」で廃止されたバージョンに置き換える必要があります。