微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何为本地 Windows 使用编译 Ncurses 程序

如何解决如何为本地 Windows 使用编译 Ncurses 程序

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

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

是否可以编译它以使用本机 Windows 控制台运行?这是我一直在编译它的方式:

gcc -o PROGRAMNAME main.c -lncurses

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

更新

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

更新 2

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

更新 3

没关系,找到了解决方案!见下文。

解决方法

我想出了一个解决方案。我会在这里发布,以防其他人遇到同样的问题。感谢 Thomas Dickey 的帮助!

  1. 安装 mingw-w64 toolchain 和编译项目所需的任何其他包(这主要是我搞砸的地方)
  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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。