如何编译 Ncurses 程序以供本机 Windows 使用

nes*_*sos 3 windows gcc cygwin ncurses msys2

我正在尝试在 Windows 上使用 Ncurses 编译 C 程序。我使用 GCC 成功编译了它,如果我在 Cygwin 或 MSYS2 中运行它,它可以完美运行。但是,如果我尝试在 Windows 命令提示符中运行它,则会收到以下错误:

打开终端时出错:xterm-256color。

是否可以将其编译为使用本机 Windows 控制台运行?这就是我编译它的方式:

gcc -o 程序名称 main.c -lncurses

我还将 Ncurses 的 Cygwin 和 Msys dll 复制到已编译的可执行文件的目录中。

更新

所以我想出了如何让程序运行。我从项目文件夹中删除了所有 DLL,然后将“C:\msys64\usr\bin”添加到我的 PATH 环境变量中。但是,我仍然想知道如果我要分发它,是否有办法让它工作,因为它仍然依赖于我安装的 MSYS2。

更新2

放弃了,只使用 pdcurses,效果很好。

更新3

没关系,找到解决办法了!见下文。

nes*_*sos 5

我想出了一个解决办法。如果其他人也遇到同样的问题,我会将其发布在这里。感谢托马斯·迪基的帮助!

  1. 安装mingw-w64 工具链和编译项目所需的任何其他包(这主要是我搞砸的地方)
  2. 编译时一定要包含/mingw64/include/ncurses目录,否则gcc找不到curses.h
  3. 包含 /mingw64/bin 作为静态目录或将必要的 dll 复制到与该目录相同的文件夹中

我最终编译了这个:

gcc -I/mingw64/include/ncurses -o PROGRAMNAME main.c -lncurses -L/mingw64/bin -static
Run Code Online (Sandbox Code Playgroud)