- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
OS X 10.13.2( Alpine 脉)。
我正在尝试编写支持 widechar 的简单 curses 程序,但似乎默认(预安装的库)curses 不支持 widechar:
最简单的程序示例(来自 here ):
#include <ncursesw/ncurses.h>
#include <locale.h>
#include <wchar.h>
int main() {
setlocale(LC_ALL, "");
initscr();
wchar_t wstr[] = { 9474, L'\0' };
mvaddwstr(0, 0, wstr);
refresh();
getch();
endwin();
return 0;
}
不编译,报错:
test.cpp:1:10: fatal error: 'ncursesw/ncurses.h' file not found
试图在手册页中找到:
man addwstr says:
#include <curses.h>
int addwstr(const wchar_t *wstr);
int addnwstr(const wchar_t *wstr, int n);
int waddwstr(WINDOW *win, const wchar_t *wstr);
int waddnwstr(WINDOW *win, const wchar_t *wstr, int n);
int mvaddwstr(int y, int x, const wchar_t *wstr);
int mvaddnwstr(int y, int x, const wchar_t *wstr, int n);
int mvwaddwstr(WINDOW *win, int y, int x, const wchar_t *wstr);
int mvwaddnwstr(WINDOW *win, int y, int x, const wchar_t *wstr, int n);
如手册页所述,尝试包含“curses.h”而不是“ncursesw/ncurses.h”。再次编译错误:
test.cpp:9:5: error: use of undeclared identifier 'mvaddwstr'; did you mean 'mvaddstr'?
试图在/usr/include 中找到任何与 widechar 相关的 curses header 。没有结果。有什么建议吗?
最佳答案
如果您使用如下命令,第二个示例(使用 <curses.h>
)将适用于 MacOS:
gcc -o foo -D_XOPEN_SOURCE_EXTENDED foo.c -lncurses
即:
做
nm /usr/lib/libncurses.dylib | grep addwstr
看到这个:
0000000000024c39 T _addwstr
0000000000024fba T _mvaddwstr
00000000000254ad T _mvwaddwstr
000000000002580c T _waddwstr
截至 2018 年年中,MacOS 捆绑 只有一个非常旧的 ncurses 库(5.7,发布于 2008 ),以及一个相应的旧终端数据库。你可以看到
$ /usr/bin/tic -V
ncurses 5.7.20081102
有趣的是,动态库的文件名暗示它确实是 ncurses 5.4(又早了 4 年),但是 tic
显示的编译版本 和 curses.h
头文件告诉实际版本。如前所述,该库包含宽字符库所需的符号。大多数系统使用的 ncurses 和 ncursesw 库之间的名称区别早于 ncurses 5.4(再次)几年,因此 Apple 的配置会让大多数开发人员感到困惑。
对于开发,您应该考虑使用更新的东西,例如 MacPorts或 homebrew .对于那些,配置细节很容易获得,并且(不出所料)提供了 ncursesw 库。
关于macos - Curses 库不支持 OS X high sierra 上的 wide char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48042203/
当调用特定方法时,我读到 Wide 和 Box 是首选,为什么不是 Box 和 Wide。谁能用一个小例子向我解释原因。 最佳答案 加宽:使用更窄的参数类型调用方法。 public class Tes
我四处搜索,但没有找到关于此错误的任何有值(value)的信息。 typedef struct { unsigned short string[]; } s; const s str
我正在尝试制作一个程序来显示用户订购的杂货。它会将数据写入另一个文件(完成后),并显示每个食物组的平均值。它是这样的: #include int main() { int beverage[3
我已经尝试应用 width 但它没有帮助,我想要的是制作可点击的外部填充。 .btn { background-color: red; padding: 10px; height: 20p
我想要一个单元格宽度超过 320 点的 UITableView。用户应该能够横向滚动以查看 UITableViewCell 的不同部分。 UITableView 是否可以实现这种行为,或者我应该去尝试
遵循 https://github.com/MtDersvan/tf_playground/blob/master/wide_and_deep_tutorial/wide_and_deep_basic
这个问题在这里已经有了答案: Calling the GetUserName WinAPI function with a mutable string doesn't populate the s
我觉得我最近掌握了 HTML 和 CSS。如果是 1998 年,我会感觉很棒。不幸的是,我需要更好地了解手机和平板电脑将如何呈现我的网站。 我想知道是否有可能强制设备以“广泛方式”呈现网络。例如,如果
我这样定义一个新类: @interface SomeClass : NSObject { int wide; } - (id)initWithWide:(int)value; @end 当我像
C# 有一个叫做 Using alias directives 的特性.他们允许你做一个像这样的类型的别名: using CustomerId = MyComp.MyProject.Core.Enti
在编写了一些 python 应用程序引擎应用程序之后,我发现自己在两种组织源代码树的方法之间左右为难:广度或深度。 具体而言,考虑一个小型咨询公司的内部应用程序来管理联系人管理、项目跟踪和报告以及员工
我的整个团队都相信 Python 中的类型提示将帮助我们构建更易于维护的代码。每个人都支持在我们的整个项目中实现类型提示。 使用 mypy 一周后,我们意识到 mypy 并没有真正提醒您实现类型提示。
我在 Windows 7 上运行 Active Perl 5.14。 我正在尝试编写一个程序,该程序将读入转换表,然后处理文件并用其他模式替换某些模式 - 以上所有内容均采用 Unicode (UTF
我有文件 /tmp/xxx下一个内容: 00000000 D0 BA D0 B8 │ D1 80 D0 B8 │ D0 BB D0 B8 │ D0 BA к и р и л и к 当我读取文
我正在尝试从文件中读取文本,挑选出所有字符并写入另一个文件。然后统计字数。 问题是 ENTER/newline 出现时。 如果原文是 first row second row 它变成读作 first
为了确保我的箱子的所有公共(public)工件都被记录(如果是最低限度的开始),我在我的 lib.rs src/main.rs:3:3 | 3 | #![deny(missing_docs)]
为了确保我的箱子的所有公共(public)工件都被记录(如果是最低限度的开始),我在我的 lib.rs src/main.rs:3:3 | 3 | #![deny(missing_docs)]
我需要(目前)使用一些 java api,不幸的是,它们只能通过 jvm 属性进行“配置”。 我知道这会影响多线程,因为一个线程修改属性可能会影响其他正在运行的线程。 所以我想在同步方法中执行此操作,
我正在 build 这个网站 http://www.saraswati.co.uk 如果你在这里查看: http://www.saraswati.co.uk/?page_id=12 您会看到我正在使用
我正在寻找一种智能设计模式,用于将站点范围的变量加载到项目中多个 View 的 ViewModel 中(以 DRY 方式)。模糊的问题,一个例子可以澄清事情: 在我的项目中,我有一个部分 View ,
我是一名优秀的程序员,十分优秀!