如何让 ncurses 在我的 Windows 上运行?我尝试了各种方法让它运行,但我的 gcc 编译器无法识别它,它正确安装在目录 C:\msys64\mingw64\include\ncursesI 中
如何让 ncurses 在我的 Windows 上运行?我尝试了各种方法让它运行,但我的 gcc 编译器无法识别它,它已正确安装在目录 C:\msys64\mingw64\include\ncursesI 中,该目录是通过 MSYS2 安装的。有人能帮助我吗?
我尝试按如下方式编译我的代码:gcc test.c -o test -IC:\msys64\mingw64\includeit 返回了编译器中的错误,我尝试用另一个命令运行它:gcc test.c -o test -IC:\msys64\mingw64\include -LC:\msys64\mingw64\lib -lncurses它也不起作用,我不知道该怎么办。
具体错误:test.c:1:10: 致命错误:ncurses.h: 没有这样的文件或目录1 | #include
在 VS Code 使用的 msys2 MingW64 默认安装的情况下,ncurses 基本是存在的,但是正确的包含和链接却不言而喻。
这是一个非常简单的 ncurses-helloworld.cpp:
#include <ncurses/ncurses.h>
int main(int argc, char ** argv)
{
// init screen and sets up screen
initscr();
// print to screen
printw("Hello World");
// refreshes the screen
refresh();
// pause the screen output
getch();
// deallocates memory and ends ncurses
// endwin();
return 0;
}
当然,你可以在例如编译器的命令行或 makefile 中或任何地方设置包含路径, vscode
以便
#include <ncurses.h>
可以,但与此同时我习惯于只包含表单子目录中的所有内容 C:\msys64\mingw64\include
- #include <directory name/filename.h>
通过 msys 包 pacman
直接安装
要使用它正确链接 ncurses 库,请使用以下命令:
g++ test.cpp -o test.exe -lncurses -DNCURSES_STATIC
或者
gcc test.c -o test.exe -lncurses -DNCURSES_STATIC
对于纯 C 程序。
这一问题 的评论中给出了解释 ,这让当时的原帖作者找到了适当的解决方案:
\'标头定义 __declspec(dllexport)
除非 NCURSES_STATIC
已定义,因此添加 -DNCURSES_STATIC
为编译选项可修复所有问题。\'