実現したいこと
#include<curses.h>を含むcファイルをgccした際エラーを無くしたい。
(C言語の外部ライブラリPDCursesをダウンロードした後、include pathをvscodeで正常に通す。
そのうえでライブラリに付随するdemoフォルダ内のrain.cを実行する。)
前提
tetrisをc言語で書こうとしています。ミノをどんな入力関数を用いて操作するかという問題の解決策を探していたところ、PDCurseというライブラリを発見しました。(windows向けのcursesらしいです。https://qiita.com/pokohide/items/a246045f3ccaf540a375 のようなブロック崩しゲームを作れているので応用できると考えました。)
しかし、https://github.com/wmcbrine/PDCurses をダウンロードしwindows向けビルド方法の書かれたreadmeの通りにwinconフォルダ内でmingw32-make -f Makefileを実行しました。C:\pg\PDCurses-masterでtreeを実行した結果が以下の通りです。
C:.
│ CNAME
│ curses.h
│ curspriv.h
│ memo.txt
│ panel.h
│ README.md
│
├─common
│ acs437.h
│ acsgr.h
│ acsuni.h
│ borland.lrf
│ font437.h
│ icon32.xpm
│ icon64.xpm
│ iconbmp.h
│ libobjs.mif
│ pdcurses.rc
│ README.md
│ watcom.mif
│
├─demos
│ │ firework.c
│ │ nctests.mif
│ │ ncurses_cfg.h
│ │ ozdemo.c
│ │ ptest.c
│ │ rain.c
│ │ README.md
│ │ testcurs.c
│ │ tui.c
│ │ tui.h
│ │ tuidemo.c
│ │ UTF-8-demo.txt
│ │ worm.c
│ │ xmas.c
│ │
│ └─.vscode
│ c_cpp_properties.json
│
├─docs
│ HISTORY.md
│ IMPLEMNT.md
│ manext.awk
│ MANUAL.md
│ mkman.sh
│ README.md
│ USERS.md
│
├─dos
│ Makefile
│ Makefile.bcc
│ Makefile.wcc
│ pdcclip.c
│ pdcdisp.c
│ pdcdos.h
│ pdcgetsc.c
│ pdckbd.c
│ pdcscrn.c
│ pdcsetsc.c
│ pdcutil.c
│ README.md
│
├─os2
│ Makefile
│ Makefile.bcc
│ Makefile.wcc
│ pdcclip.c
│ pdcdisp.c
│ pdcgetsc.c
│ pdckbd.c
│ pdcos2.h
│ pdcscrn.c
│ pdcsetsc.c
│ pdcutil.c
│ README.md
│
├─pdcurses
│ addch.c
│ addchstr.c
│ addstr.c
│ attr.c
│ beep.c
│ bkgd.c
│ border.c
│ clear.c
│ color.c
│ debug.c
│ delch.c
│ deleteln.c
│ getch.c
│ getstr.c
│ getyx.c
│ inch.c
│ inchstr.c
│ initscr.c
│ inopts.c
│ insch.c
│ insstr.c
│ instr.c
│ kernel.c
│ keyname.c
│ mouse.c
│ move.c
│ outopts.c
│ overlay.c
│ pad.c
│ panel.c
│ printw.c
│ README.md
│ refresh.c
│ scanw.c
│ scroll.c
│ scr_dump.c
│ slk.c
│ termattr.c
│ touch.c
│ util.c
│ window.c
│
├─sdl1
│ Makefile
│ pdcclip.c
│ pdcdisp.c
│ pdcgetsc.c
│ pdckbd.c
│ pdcscrn.c
│ pdcsdl.h
│ pdcsetsc.c
│ pdcutil.c
│ README.md
│ sdltest.c
│
├─sdl2
│ Makefile
│ Makefile.vc
│ pdcclip.c
│ pdcdisp.c
│ pdcgetsc.c
│ pdckbd.c
│ pdcscrn.c
│ pdcsdl.h
│ pdcsetsc.c
│ pdcutil.c
│ README.md
│ sdltest.c
│ versions.mif
│
├─wincon
│ addch.o
│ addchstr.o
│ addstr.o
│ attr.o
│ beep.o
│ bkgd.o
│ border.o
│ clear.o
│ color.o
│ debug.o
│ delch.o
│ deleteln.o
│ getch.o
│ getstr.o
│ getyx.o
│ inch.o
│ inchstr.o
│ initscr.o
│ inopts.o
│ insch.o
│ insstr.o
│ instr.o
│ kernel.o
│ keyname.o
│ Makefile
│ Makefile.bcc
│ Makefile.vc
│ Makefile.wcc
│ mouse.o
│ move.o
│ outopts.o
│ overlay.o
│ pad.o
│ panel.o
│ pdcclip.c
│ pdcclip.o
│ pdcdisp.c
│ pdcdisp.o
│ pdcgetsc.c
│ pdcgetsc.o
│ pdckbd.c
│ pdckbd.o
│ pdcscrn.c
│ pdcscrn.o
│ pdcsetsc.c
│ pdcsetsc.o
│ pdcurses.a
│ pdcurses.dll
│ pdcurses.o
│ pdcutil.c
│ pdcutil.o
│ pdcwin.h
│ printw.o
│ README.md
│ refresh.o
│ scanw.o
│ scroll.o
│ scr_dump.o
│ slk.o
│ termattr.o
│ touch.o
│ util.o
│ window.o
│
└─x11
aclocal.m4
config.guess
config.h.in
config.sub
configure
configure.ac
install-sh
Makefile.in
pdcclip.c
pdcdisp.c
pdcgetsc.c
pdckbd.c
pdcscrn.c
pdcsetsc.c
pdcutil.c
pdcx11.h
README.md
sb.c
scrlbox.c
scrlbox.h
xcurses-config.in
発生している問題・エラーメッセージ
vscodeの#include<curses.h>に以下のメッセージが表示されます。
#include errors detected. Please update your includePath. Squiggles are disabled for this translation unit (C:\pg\PDCurses-master\demos\rain.c).C/C++(1696)
gccを実行した際以下のメッセージが表示されます。
PS C:\pg\PDCurses-master\demos> gcc -orain rain.c -lcurses rain.c:29:10: fatal error: curses.h: No such file or directory 29 | #include <curses.h> | ^~~~~~~~~~ compilation terminated. PS C:\pg\PDCurses-master\demos> gcc rain.c rain.c:29:10: fatal error: curses.h: No such file or directory 29 | #include <curses.h> | ^~~~~~~~~~ compilation terminated.
試したこと
Microsoft C/C++ Extensionという拡張機能にあるInclude pathという設定を編集してみました。
一番最初は
${workspaceFolder}/**
という記述があるのみなのですが
${workspaceFolder}/**
C:\pg\PDCurses-master
と追加してみるとエディタ上の赤波が消えます。しかしgccでの上記のようなエラーは出続けます。
補足情報(FW/ツールのバージョンなど)
gcc version 12.2.0 (x86_64-win32-seh-rev0, Built by MinGW-W64 project)
自動生成されているc_cpp_properties.jsonは以下の通りです。
json
1{ 2 "configurations": [ 3 { 4 "name": "Win32", 5 "includePath": [ 6 "${workspaceFolder}/**", 7 "C:\\pg\\PDCurses-master" 8 ], 9 "defines": [ 10 "_DEBUG", 11 "UNICODE", 12 "_UNICODE" 13 ], 14 "compilerPath": "C:\\pg\\mingw64\\bin\\gcc.exe", 15 "cStandard": "c17", 16 "cppStandard": "gnu++17", 17 "intelliSenseMode": "windows-gcc-x64" 18 } 19 ], 20 "version": 4 21}

回答2件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2023/04/05 00:34
2023/04/05 01:27