web-dev-qa-db-ja.com

OpenGLでVisualStudio Codeをセットアップする方法は?

Opengl開発用のビジュアルスタジオコードをセットアップしようとしています。私はすでにそれをプレーンなc/c ++開発で機能させています。現在、opengl開発をミックスに追加しようとしています。他のプラットフォーム(Eclipse、Xcode、Visual Studio、CodeBlocksなど)でopenglをセットアップする方法を知っています。私の問題の根本は、VisualStudioコードで依存関係を設定する方法です。私の最善の推測は、task.jsonファイルでタスクを実行することです。今のところ、プログラムを実行するたびにプロジェクトをコンパイルするためのコードが入力されています。

5
Matthew

OpenGl&C/C++&VSCode

同じ問題に遭遇しました。ここには2つの問題があることに注意してください。

  1. launch.jsonファイルとtasks.jsonファイルを設定するにはどうすればよいですか?
  2. コードをコンパイルするために使用するコマンドは何ですか?
    • これはそれがトリッキーになるところです。コンパイルはOSと環境によって異なります。以下の部分は主にそれに焦点を当てています:

マック

私にとっての主な問題は、私がMACを使用していて、多くの説明がLinuxとWindows(frameworkパラメーターを持たない)のみを対象としていたか、XcodeGUIですべてを設定する方法を説明していることでした。

TL; DR

このGithubの要点このStackOverflowの投稿 の両方が示唆しているように:

  1. インクルードファイル名を修正します
    • すべてが<gl/*>にあるわけではありません(たとえば、Macにはその一部に<OpenGL/*>があり、過剰ファイルには<GLUT/*>があります)
  2. 実行するには、ビルド引数にframeworkを追加します(外部ライブラリを含めるため)。例:...
    • gcc -o ex1 ex1.c -framework GLUT -framework OpenGL -Wno-deprecated
    • cc <your_file.c> -framework GLUT -framework OpenGL
  3. 忘れないでください:それらのframeworksをC/C++拡張設定および/またはtasks.jsonにも追加してください

(繰り返しますが、clangまたはclang++を使用する場合も非常に似ています)

その洞察を C/C++の公式ドキュメントtasks と統合すれば、すべて完了です。 :)

詳細

上記は私の全体的な旅の短いバージョンであり、以下に詳述されています:

  1. 私も VSCodeを使用したC++プログラミングに関する公式のVSCode命令 (これも言及しました)から始めました。
  2. 次に、下部にあるリンクをたどりました: Visual Studio CodeでClangを使用 (GCCの設定は非常に似ています)。
  3. MacとMac以外のOpenGlコンパイルの違いについて このGithub Gist をフォローしました。 2つの大きな違いがあります:
    1. Appleパスはわずかに異なります。すべてが<gl/*>にあるわけではありません(たとえば、コアファイルの場合は<OpenGL/*>、過剰ファイルの場合は<GLUT/*>)。
    2. OpenGLフラグを使用してframeworkおよびその他のライブラリを追加する必要があります。
  4. あなたがそれを世話したら:
    1. それらのframeworksをC/C++拡張設定にも追加します
    2. (始めたばかりのときは、非推奨の警告を減らしたいと思うかもしれません。OpenGLは過去10年間に大きな変更を経たため、-Wno-deprecatedを使用しました)
  5. これまでに行ったことがない場合は、brew install glewbrew install glfw、および/または使用する他の外部ライブラリを使用することをお勧めします。

WindowsとLinuxはどうですか?

VSCodeの設定はほとんど同じです。 C/C++拡張機能を正しくセットアップしたら、環境のドキュメントを確認してください。これは、 公式の「C/C++ for VisualStudioCode」ドキュメントページ の下部にあります。 。

ただし、より大きな問題は通常、それをコンパイルする方法です。 MAC以外のシステムでコンパイルした最近の例や経験はありません。しかし、ここにいくつかの関連する参考文献があります:

  1. LinuxでOpenGlをコンパイルする
  2. WindowsでOpenGlをGCCとコンパイルする

クロスプラットフォームっぽい?

これによると、明らかにクロスプラットフォーム開発はまだいくつかの頭痛の種を引き起こす可能性があります(まだ) オープンgithub問題#108

また、VSCode here を使用してOpenGlクロスプラットフォームコンパイルでジャブを取っている誰かによる例を見つけました。 .vscode/フォルダー全体 (プロジェクトのセットアップ全体ではない場合)を確認することをお勧めします。

ボタンをクリックするだけで実行+デバッグ

最近では、 これらの手順 に従うことで、組み込みのLaunch + Debugger UIに任意の数のLaunch(実行および/またはデバッグ)構成を追加するのは非常に簡単です。

[非推奨] VSCode「コードランナー」拡張機能

デバッガーUIが問題になる前(または少なくとも気付く前)に、 Code Runner 拡張機能をインストールすると、右上に小さな「コードの実行」ボタンが表示されます(またはCommand+Alt+N)。

これを使用して単一の実行可能ファイルを実行するだけの場合は、これで問題なく機能します。個々のファイルを個別に実行したい場合は、少し難しくなります。私は試していませんが、彼らが示唆しているように、特別なファイル命名パターン、つまり グロブパターン (例:*.gl.cpp)を使用し、code-runner.executorMapByGlobを使用できます。ファイル名に基づいて異なるコンパイル+実行パラメーターを持つように設定します。

4
Domi