トップページ > 記事閲覧
VScode + gcc でDXライブラリの環境構築
名前:goma_gohan 日時: 2021/04/30 20:35

"VScode + gcc でDXライブラリの環境構築をしてみた話" (//szshow.hatenablog.com/entry/2020/01/11/164506)で検索して 上記にでてくるサイトを参考に VScodeでgccを使って環境構築を行おうとしたのですが、プログラミングの知識も乏しいため、理解しないまま書いてある通りにビルドやデバッグの設定をしたのですが、デバッグを実行した結果 > Executing task: g++.exe -g -c main.cpp "-I\Program Files (x86)\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\include" -I\8_1_0_i686_w64_posix_dwarf_rt_v6_rev0 -I . -DDX_GCC_COMPILE -DDX_NON_INLINE_ASM < main.cpp:1:10: fatal error: DxLib.h: No such file or directory #include "DxLib.h" compilation terminated. The terminal process "C:\Windows\System32\cmd.exe /d /c g++.exe -g -c main.cpp "-I\Program Files (x86)\mingw-w64\i686-8.1.0-posix-dwarf-rt_v6-rev0\mingw32\include" -I\8_1_0_i686_w64_posix_dwarf_rt_v6_rev0 -I . -DDX_GCC_COMPILE -DDX_NON_INLINE_ASM" failed to launch (exit code: 1). DXライブラリのincludeパスが認識しないエラーをたたかれてしまいました。多分根本的な何かが欠けているのだと思いますがさっぱり検討がつきません。 ちなみに自分の"Intellisenseの設定", "ビルドの設定", "デバッグの設定" "ソースコード"は以下になります。 Intellisenseの設定 { "configurations": [ { "name": "Win32", "includePath": [ "${workspaceFolder}/**", "C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/include", "C:/8_1_0_i686_w64_posix_dwarf_rt_v6_rev0/" ], "defines": [ "_DEBUG", "MBCS", "_MBCS" ], "windowsSdkVersion": "10.0.19041.0", "compilerPath": "C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/gcc.exe", "cStandard": "c11", "cppStandard": "c++14", "intelliSenseMode": "windows-gcc-x86", "compilerArgs": [ "-DDX_GCC_COMPILE", "-DDX_NON_INLINE_ASM" ] } ], "version": 4 ビルドの設定 { "version": "2.0.0", "tasks": [ { "label": "build", "group": { "kind": "build", "isDefault": true }, "dependsOn": [ "compile", "link" ], "dependsOrder": "sequence" }, { "label": "compile", "type": "shell", "command": "g++.exe", "args": [ "-g", "-c", "main.cpp", "-I\\Program Files (x86)\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\include", "-I\\8_1_0_i686_w64_posix_dwarf_rt_v6_rev0", "-I", ".", "-DDX_GCC_COMPILE", "-DDX_NON_INLINE_ASM", ], "problemMatcher": [ "$gcc" ] }, { "label": "link", "type": "shell", "command": "g++", "args": [ "main.o", "-L\\Program Files (x86)\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\lib", "-L\\8_1_0_i686_w64_posix_dwarf_rt_v6_rev0", "-lDxLib", "-lDxUseCLib", "-lDxDrawFunc", "-ljpeg", "-lpng", "-lzlib", "-ltiff", "-ltheora_static", "-lvorbis_static", "-lvorbisfile_static", "-logg_static", "-lbulletdynamics", "-lbulletcollision", "-lbulletmath", "-lopusfile", "-lopus", "-lsilk_common", "-lcelt", "-o", "test.exe" ], "problemMatcher": [ "$gcc" ] } ] } デバッグの設定 { "version": "0.2.0", "configurations": [ { "name": "(gdb) 起動", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}\\test.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "C:\\Program Files (x86)\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\bin\\gdb.exe", "setupCommands": [ { "description": "gdb の再フォーマットを有効にする", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "build" } ] } ソースコード (ファイル名:main.cpp) #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ unsigned int Cr; ChangeWindowMode(TRUE); SetGraphMode(1280, 720, 32); if(DxLib_Init() == -1){ return -1; } Cr = GetColor(255, 255, 255); DrawString(250, 240 - 32, "Hello DxLib!", Cr); WaitKey(); DxLib_End(); return 0; } ファイルのディレクトリ(main.cppの保存場所) D://Downloads ↓ dxlib_code ↓ .vscode → c_cpp_properties.json , launch.json , tasks.json main.cpp main.o
メンテ

Page: 1 |

Re: VScode + gcc でDXライブラリの環境構築 ( No.1 )
名前:管理人 日時:2021/05/01 22:31

設定を拝見する限りは C:/8_1_0_i686_w64_posix_dwarf_rt_v6_rev0/ ↑こちらにDXライブラリのファイル( DxLib.h など )が入っているはずですが、入っていますでしょうか? ともあれ、プログラミングの熟練者ではないのでしたら難易度の高い VScode + gcc ではなく 無料の Visual Studio Community を使用されたほうが良いと思います… (・・; ( 私も VScode + gcc には詳しくありませんので… ) < Visual Studio Community ダウンロードページ > https://visualstudio.microsoft.com/ja/vs/community/
メンテ
Re: VScode + gcc でDXライブラリの環境構築 ( No.2 )
名前:goma_gohan 日時:2021/05/02 04:51

ちゃんと"DxLib.h" が入っていますね。 VScode だと拡張機能があったりして色々と便利なんですよね。 できる限りCドライブの容量を増やしたくないのと、ほかのプログラミング言語の学習をVScode上で行っている理由で、Visual Studio をインストールせず、vscode内で済ましたいと望んでいたのですが、難しいのですかね...
メンテ
Re: VScode + gcc でDXライブラリの環境構築 ( No.3 )
名前:管理人 日時:2021/05/02 06:49

> ちゃんと"DxLib.h" が入っていますね。 了解です では { "label": "compile", "type": "shell", "command": "g++.exe", "args": [ "-g", "-c", "main.cpp", "-I\\Program Files (x86)\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\include", "-I\\8_1_0_i686_w64_posix_dwarf_rt_v6_rev0", "-I", ".", "-DDX_GCC_COMPILE", "-DDX_NON_INLINE_ASM", ], ↑こちらの部分の "-I\\8_1_0_i686_w64_posix_dwarf_rt_v6_rev0", ↑ この行を "-IC:\\8_1_0_i686_w64_posix_dwarf_rt_v6_rev0", ↑ このように、『I』と『\\』の間に『C:』を追加してみたらどうでしょうか?
メンテ
Re: VScode + gcc でDXライブラリの環境構築 ( No.4 )
名前:goma_gohan 日時:2021/05/03 00:12

これはうまくいったという事ですかね? デバッグを実行したら、 > Executing task: g++ main.o -mwindows "-LC:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/lib" -LC:/8_1_0_i686_w64_posix_dwarf_rt_v6_rev0 -lDxLib -lDxUseCLib -lDxDrawFunc -ljpeg -lpng -lzlib -ltiff -ltheora_static -lvorbis_static -lvorbisfile_static -logg_static -lbulletdynamics -lbulletcollision -lbulletmath -lopusfile -lopus -lsilk_common -lcelt -o test.exe < Terminal will be reused by tasks, press any key to close it. と表示され、エラーはなくなりました。 言われた通り、Iと\\(\\は後に/に変換)の間にC:を入れたのと、加えてLと\\の間にもC:を入れたところこのような結果がでました。
メンテ
Re: VScode + gcc でDXライブラリの環境構築 ( No.5 )
名前:goma_gohan 日時:2021/05/03 00:17

なおIと\\(\\は後に/に変換)の間にC:を入れただけだと、このような結果が表示されました。 > Executing task: g++ main.o -mwindows "-L/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/lib" -L/8_1_0_i686_w64_posix_dwarf_rt_v6_rev0 -lDxLib -lDxUseCLib -lDxDrawFunc -ljpeg -lpng -lzlib -ltiff -ltheora_static -lvorbis_static -lvorbisfile_static -logg_static -lbulletdynamics -lbulletcollision -lbulletmath -lopusfile -lopus -lsilk_common -lcelt -o test.exe < C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lDxLib C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lDxUseCLib C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lDxDrawFunc C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -ljpeg C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lpng C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lzlib C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -ltiff C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -ltheora_static C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lvorbis_static C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lvorbisfile_static C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -logg_static C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lbulletdynamics C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lbulletcollision C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lbulletmath C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lopusfile C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lopus C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lsilk_common C:/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/bin/../lib/gcc/i686-w64-mingw32/8.1.0/../../../../i686-w64-mingw32/bin/ld.exe: cannot find -lcelt collect2.exe: error: ld returned 1 exit status The terminal process "C:\Windows\System32\cmd.exe /d /c g++ main.o -mwindows "-L/Program Files (x86)/mingw-w64/i686-8.1.0-posix-dwarf-rt_v6-rev0/mingw32/lib" -L/8_1_0_i686_w64_posix_dwarf_rt_v6_rev0 -lDxLib -lDxUseCLib -lDxDrawFunc -ljpeg -lpng -lzlib -ltiff -ltheora_static -lvorbis_static -lvorbisfile_static -logg_static -lbulletdynamics -lbulletcollision -lbulletmath -lopusfile -lopus -lsilk_common -lcelt -o test.exe" failed to launch (exit code: 1). Terminal will be reused by tasks, press any key to close it.
メンテ
Re: VScode + gcc でDXライブラリの環境構築 ( No.6 )
名前:管理人 日時:2021/05/03 21:34

> これはうまくいったという事ですかね? プログラムを実行できたのでしたらうまくいったという事だと思います
メンテ
Re: VScode + gcc でDXライブラリの環境構築 ( No.7 )
名前:goma_gohan(解決済) 日時:2021/05/06 16:48

デバッグだけで実行するのを忘れていました。実行したところ、exeファイルが開きプログラムが動作しました。 無事解決いたしました、ありがとうございます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存