質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

C++

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

解決済

C++でSiv3Dフレームワークをincludeするプログラムでコンパイルしようとするとエラーが発生する。

Soybeanman
Soybeanman

総合スコア15

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

C++

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

1回答

1グッド

0クリップ

405閲覧

投稿2022/10/16 11:47

編集2022/10/16 11:50

前提

C++17にて、アプリを容易に作成できるSiv3D(https://siv3d.github.io/ja-jp/ )というフレームワークを使ってプログラムを作成しようとしています。
エディタはVisual Studio Codeです。

まず最初に、正常にincludeできるかどうか確かめるために何もメインの処理を書かないプログラムを作成しました。F5キーにてコンパイルを行おうとしました。しかし、コンパイル前に以下に書くようなエラーメッセージが発生しました。

実現したいこと

・Siv3D.hppを正常にincludeする。

発生している問題・エラーメッセージ

Visual Studio Codeで表示されたメッセージをコピーしたものです。3つ表示されました。

[{ "resource": "/c:/Users/Kitsune/Documents/Programing/Code/Cpp/GameTemplate/Test.cpp", "owner": "C/C++", "code": "1696", "severity": 8, "message": "#include エラーが検出されました。includePath を更新してください。この翻訳単位 (C:\\Users\\Kitsune\\Documents\\Programing\\Code\\Cpp\\GameTemplate\\Test.cpp) では、波線が無効になっています。", "source": "C/C++", "startLineNumber": 1, "startColumn": 1, "endLineNumber": 1, "endColumn": 21 }]
[{ "resource": "/c:/Users/Kitsune/Documents/Programing/Code/Cpp/GameTemplate/Test.cpp", "owner": "C/C++", "code": "1696", "severity": 8, "message": "ソース ファイルを開けません \"tbb/blocked_range.h\" (dependency of \"Siv3D.hpp\")", "source": "C/C++", "startLineNumber": 1, "startColumn": 1, "endLineNumber": 1, "endColumn": 21 }]
[{ "resource": "/c:/Users/Kitsune/Documents/Programing/Code/Cpp/GameTemplate/Test.cpp", "owner": "cpptools", "severity": 8, "message": "Siv3D.hpp: No such file or directory", "source": "gcc", "startLineNumber": 1, "startColumn": 10, "endLineNumber": 1, "endColumn": 10 }]

該当のソースコード

Test.cppが今回問題が起きたソースコードです。
.vscode/c_cpp_properties.jsonはVisual Studio Codeが自動的に生成したものに、コンパイラにMinGWのg++.exeを設定し、該当するincludePathを追加したものになっています。
その他の.vscode/~はVisual Studio Codeが自動的に生成して何も変更を加えていないファイルです。
C:/Users/Kitsune/Documents/OpenSiv3D_0.6.5はSiv3D(https://siv3d.github.io/ja-jp/ )の案内通りにダウンロードしたものとなっています。
また、C:/Users/Kitsune/Documents/OpenSiv3D_0.6.5/includeにはSiv3D.hppが存在していることを確認しています。
以下のプログラムの存在位置は、C:\Users\Kitsune\Documents\Programing\Code\Cpp\GameTemplate\です。

C++:Test.cpp

1#include <Siv3D.hpp> 2 3void Main() {}; // Siv3DではmainではなくMainを使用する

json:.vscode/c_cpp_properties.json

1{ 2 "configurations": [ 3 { 4 "name": "MinGW", 5 "includePath": [ 6 "${workspaceFolder}/**", 7 "C:/Users/Kitsune/Documents/OpenSiv3D_0.6.5/include", 8 "C:/Users/Kitsune/Documents/OpenSiv3D_0.6.5/include/ThirdParty" 9 ], 10 "defines": [ 11 "_DEBUG", 12 "UNICODE", 13 "_UNICODE" 14 ], 15 "windowsSdkVersion": "10.0.19041.0", 16 "compilerPath": "C:\\MinGW\\bin\\g++.exe", 17 "cStandard": "c17", 18 "cppStandard": "c++17", 19 "intelliSenseMode": "gcc-x64", 20 "compilerArgs": [] 21 } 22 ], 23 "version": 4 24}

json:.vscode/settings.json

1{ 2 "files.associations": { 3 "filesystem": "cpp" 4 } 5}

json:.vscode/tasks.json

1{ 2 "tasks": [ 3 { 4 "type": "cppbuild", 5 "label": "C/C++: g++.exe アクティブなファイルのビルド", 6 "command": "C:\\MinGW\\bin\\g++.exe", 7 "args": [ 8 "-fdiagnostics-color=always", 9 "-g", 10 "${file}", 11 "-o", 12 "${fileDirname}\\${fileBasenameNoExtension}.exe" 13 ], 14 "options": { 15 "cwd": "${fileDirname}" 16 }, 17 "problemMatcher": [ 18 "$gcc" 19 ], 20 "group": "build", 21 "detail": "デバッガーによって生成されたタスク。" 22 }, 23 { 24 "type": "cppbuild", 25 "label": "C/C++: cl.exe アクティブなファイルのビルド", 26 "command": "cl.exe", 27 "args": [ 28 "/Zi", 29 "/EHsc", 30 "/nologo", 31 "/Fe${fileDirname}\\${fileBasenameNoExtension}.exe", 32 "${file}" 33 ], 34 "options": { 35 "cwd": "${fileDirname}" 36 }, 37 "problemMatcher": [ 38 "$msCompile" 39 ], 40 "group": "build", 41 "detail": "デバッガーによって生成されたタスク。" 42 }, 43 { 44 "type": "cppbuild", 45 "label": "C/C++: cpp.exe アクティブなファイルのビルド", 46 "command": "C:\\MinGW\\bin\\cpp.exe", 47 "args": [ 48 "-fdiagnostics-color=always", 49 "-g", 50 "${file}", 51 "-o", 52 "${fileDirname}\\${fileBasenameNoExtension}.exe" 53 ], 54 "options": { 55 "cwd": "${fileDirname}" 56 }, 57 "problemMatcher": [ 58 "$gcc" 59 ], 60 "group": { 61 "kind": "build", 62 "isDefault": true 63 }, 64 "detail": "デバッガーによって生成されたタスク。" 65 } 66 ], 67 "version": "2.0.0" 68}

試したこと

・.vscode/c_cpp_properties.jsonのincludePathにダウンロードしたディレクトリのincludeディレクトリと、その中に存在するThirdPartyディレクトリを追加指定しました。
・tbb/blocked_range.hをダウンロードしたディレクトリ内に存在するか検索しました。
→存在しませんでした。
・tbb/blocked_range.hについて検索しました。
→インテルのTBBというライブラリに含まれるものである可能性があります。(https://www.cism.ucl.ac.be/Services/Formations/ICS/ics_2013.0.028/composerxe/Documentation/ja_JP/tbb/help/index.htm#reference/algorithms/range_concept/blocked_range_cls.htm )
しかし、Siv3Dの公式ページには特にそのようなライブラリが必要という話がなかったため入れるかどうか迷っています。容量の問題であまり入れたくありません。また、導入方法がわかりません。おそらく、(https://www.intel.com/content/www/us/en/developer/tools/oneapi/onetbb.html )のGet it nowからダウンロードできると思われますが、正しいのかどうかわかりません……
・その他、類似事例について検索しました。→Siv3Dの情報自体が少ないため、私が検索した限りでは類似事例は見つかりませんでした。

補足情報(FW/ツールのバージョンなど)

Visual Studio Code バージョン 1.72.2
g++ バージョン 9.2.0
Siv3D バージョン 0.6.5

ご不明な点がございましたら、お手数ですがコメントまでお知らせください。
何卒、ご教授お願いします。

yukkuri_55🎉を押しています

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

回答1

1

自己解決

Twitterにて作者本人から回答をいただきました。
https://twitter.com/Reputeless/status/1581618819717828608
公式サイトで説明している手順以外では Siv3D を使うことができないようです。
Visual Studio Community2022をダウンロードしてそれをエディタとして使用することが前提のようです。
考えていただいた皆様ありがとうございました!

投稿2022/10/16 12:16

Soybeanman

総合スコア15

yukkuri_55👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

C++

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