第 3 章 プログラムの作成
3.3 プログラムのビルドと実行
ソースプログラムをコンパイルしてオブジェクトプログラムを生成し、リンクによりオブジェ クトプログラム同士やライブラリを結合して実行プログラムを生成する一連の作業をビルドと いいます。これは簡単なプログラムであればコンパイラのコマンドを用いて実行することができ ますが、プログラムが複雑になるとコンパイラのコマンドだけでビルドするのは手間がかかりま す。そこで、統合開発環境や make コマンドなどの補助的な手段を用いてビルドします。
3.3.1 Windows
Visual Studio Community 2017 でビルドするには、「ビルド」メニューから「ソリューションの
ビルド」を選んでください (図 43)。その下の「“プロジェクト名” のビルド」でも構いません。
プログラムの実行は、「デバッグメニュー」の「デバッグ開始」を選ぶか、ファンクションキー の F5 をタイプしてください。ツールバーにある「緑色の右向き三角▶」をクリックしてもデバッ グ実行を開始します。ソースプログラムの修正後、ビルドせずにプログラムを実行したときは、
先にビルドを実行します。
図 43 Visual Studio Community 2017 によるプログラムのビルド
なお、ソリューション構成が「Debug」のとき、ビルド時に「LINK : warning LNK4098: defaultlib
'MSVCRT' はほかのライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してく
ださい。」という警告が出ることがあります。これはここでは無視してください。GLFW と GLEW をダイナミックリンクすれば、この警告を抑制できます。
3.3.2 macOS
Xcode では、左上の黒い右向き三角▶をクリックすれば、プログラムのビルドと実行を続けて
行います (図 44)。Command キーを押しながら R のキーをタイプしても同様です。
図 44 Xcode によるプログラムのビルドと実行
コ マ ン ド ラ イ ン で ビ ル ド す る 場 合 は 、c++ コ マ ン ド に std=c++11 I/usr/local/include -L/usr/local/lib -lglfw3 -lGLEW -framework OpenGL -framework CoreVideo -framework IOKit -framework
Cocoa オプションを追加してください。‘$’ はシェルのプロンプトを表します。
$ c++ main.cpp -g -Wall -std=c++11 -I/usr/local/include -L/usr/local/lib -lglfw3 ¥ -lGLEW -framework OpenGL -framework CoreVideo -framework IOKit -framework Cocoa
さすがに長過ぎるので、Makefile を作って make コマンドを実行するのが賢明だと思います。
Makefile を用意していれば、make コマンドを実行するだけです。
$ make
3.3.3 Linux
Geany の場合は、「ビルド」メニューの「ビルド」を選んでください (図 45)。ビルドされたプ
ログラムを実行するには、同じ「ビルド」メニューの「実行」を選んでください。これらはそれ ぞれファンクションキーの F9 と F5 でも実行できます。また、ツールバー上にも対応するボタ ンがあります。
図 45 Geany によるプログラムのビルドと実行
コマンドラインでビルドする場合は、c++ コマンドに -std=c++11 -lglfw3 -lGLEW -lGL -lXrandr -lXinerama -lXcursor -lXi -lXxf86vm -lX11 -lpthread -lrt -lm -ldl オプションを追加してください。‘$’
はシェルのプロンプトを表します。
$ c++ main.cpp -g -Wall -std=c++11 -lglfw3 -lGLEW -lGL -lXrandr -lXinerama ¥ -lXcursor -lXi -lXxf86vm -lX11 -lpthread -lrt -lm -ldl
長いので、Makefile を作って make コマンドを使用することを勧めます。Makefile を用意して いれば、make コマンドを実行するだけです。
$ make
l 実行結果
図 46 開いたウィンドウ (macOS の場合)