cgdb UTF-8乱码
support utf-8
cgdb github上的issues里面有人提到了这个问题,维护者回复的是需要使用libncursesw这个支持宽字符的库来解决这个问题。
查看是否安装了该库ldconfig -p | grep libncursesw,未安装则查看有哪些库:
thomas@ubuntu:~$ apt search libncursesw
Sorting... Done
Full Text Search... Done
`libncursesw5`/bionic-updates,now 6.1-1ubuntu1.18.04 amd64
shared libraries for terminal handling (wide character support)
`libncursesw5-dbg`/bionic-updates 6.1-1ubuntu1.18.04 amd64
debugging/profiling libraries for ncursesw
`libncursesw5-dev`/bionic-updates,now 6.1-1ubuntu1.18.04 amd64
developer's libraries for ncursesw
分别有三个,我当时选择的是第一个libncursesw5,进行了安装,结果configure的时候检测不到libncursesw,只检测到了libncurses。对比目录里面的文件:
thomas@ubuntu:/usr/lib/x86_64-linux-gnu$ ls /usr/lib/x86_64-linux-gnu/libncurses* -l
-rw-r--r-- 1 root root 297196 May 23 2018 /usr/lib/x86_64-linux-gnu/libncurses.a
-rw-r--r-- 1 root root 127016 May 23 2018 /usr/lib/x86_64-linux-gnu/libncurses++.a
-rw-r--r-- 1 root root 31 May 23 2018 /usr/lib/x86_64-linux-gnu/libncurses.so
发现没有libncursesw,ldconfig -p | grep libncursesw:
thomas@ubuntu:/usr/lib/x86_64-linux-gnu$ ldconfig -p | grep libncursesw
libncursesw.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/libncursesw.so.5
并没有libncursesw.so, ld就找不到了。sudo apt install libncursesw5-dev,安装完开发者使用的库,这时/usr/lib/x86_64-linux-gnu/目录下才出现libncursesw.so。这时再configure,显示使用的不再是libncurses,而是libncursesw。make,make install。运行完美支持utf-8。
以上啰嗦一大堆,直接说sudo apt install libncursesw5-dev,问题解决。但是少了解决问题的过程和思路。在这个过程中,有两个问题要理清。
- libxx、libxx-dgb、libxx-dev有什么区别,分别何时用?
- ld为什么不链接libxx.so.nn?
- libxx、libxx-dgb、libxx-dev有什么区别,分别何时用?
libxx只包含了基本的运行时,如果只需运行软件,不用编译软件,安装这个。
libxx-dev包含了运行时和头文件和其他库文件,如果编译其他软件需要链接这个库,安装这个。
libxx-dbg包含了运行时和头文件和其他库文件,以及调试信息。
因为这里我需要从源码编译cgdb,所以就需要选择libncursesw-dev
- ld为什么不链接libxx.so.nn?
首先得让ld找的到,可以看
vim /etc/ld.so.conf,/etc/ld.so.conf内容是:
include /etc/ld.so.conf.d/.conf
/etc/ld.so.conf.d/.conf这些文件就描述了ld搜索库时会搜索的目录。编译时使用的是-lncursesw,那么ld只会在这些目录下搜索libncursesw.so这个文件。注意是libxx.so,/lib/x86_64-linux-gnu/libncursesw.so.5虽然在搜索目录中,但是不满足后缀为.so。如果要强制使用它,则直接把它作为目标文件即可:
gcc a.o /lib/x86_64-linux-gnu/libncursesw.so.5 -o a
cgdb UTF-8乱码的更多相关文章
- java web 学习十(HttpServletRequest对象1)
一.HttpServletRequest介绍 HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象 ...
- java 乱码详解_jsp中pageEncoding、charset=UTF -8"、request.setCharacterEncoding("UTF-8")
http://blog.csdn.net/qinysong/article/details/1179480 java 乱码详解__jsp中pageEncoding.charset=UTF -8&quo ...
- ubuntu下mysql中文乱码问题
本来就是想弄个网页往数据库里添加数据的,然后就发现了mysql的中文乱码问题,弄了半天解决方法如下: 首先停mysql服务,编辑配置文件my.cnf $ sudo stop mysql $sudo v ...
- 从Java String实例来理解ANSI、Unicode、BMP、UTF等编码概念
转(http://www.codeceo.com/article/java-string-ansi-unicode-bmp-utf.html#0-tsina-1-10971-397232819ff9a ...
- ascii、unicode、utf、gb等编码详解
很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们看到8个开关状态是好的,于是他们把这称为"字节".再后来,他们又做了一些可以处理这 ...
- java中文乱码解决之道(三)-----编码详情:伟大的创想---Unicode编码
随着计算机的发展.普及,世界各国为了适应本国的语言和字符都会自己设计一套自己的编码风格,正是由于这种乱,导致存在很多种编码方式,以至于同一个二进制数字可能会被解释成不同的符号.为了解决这种不兼容的问题 ...
- java中文乱码解决之道(八)-----解决URL中文乱码问题
我们主要通过两种形式提交向服务器发送请求:URL.表单.而表单形式一般都不会出现乱码问题,乱码问题主要是在URL上面.通过前面几篇博客的介绍我们知道URL向服务器发送请求编码过程实在是实在太混乱了.不 ...
- 转载:谈谈Unicode编码,简要解释UCS、UTF、BMP、BOM等名词
转载: 谈谈Unicode编码,简要解释UCS.UTF.BMP.BOM等名词 这是一篇程序员写给程序员的趣味读物.所谓趣味是指可以比较轻松地了解一些原来不清楚的概念,增进知识,类似于打RPG游戏的升级 ...
- Openfire Strophe开发中文乱码问题
网站上有很多Openfire Web方案,之前想用Smack 但是jar包支持客户端版本的,还有JDK版本问题 一直没调试成功 估计成功的方法只能拜读源码进行修改了. SparkWeb 官网代码很 ...
随机推荐
- npm查看包版本
点击跳转 ~ 会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0 ^ 会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包 ...
- ABAP-会计凭证替代字段GB01设置
1.GB01表字段设置 SM30:VWTYGB01 找到需要替代的字段,设置bexclude勾选为空 2.运行程序 RGUGBR00 激活
- py map reduce filter 总结
array=[1,3,4,71,2] ret=[] for i in array: ret.append(i**2) print(ret) #如果我们有一万个列表,那么你只能把上面的逻辑定义成函数 d ...
- DDD总览
DDD总览 领域驱动设计(DDD)编码实践 目录 写在前面DDD总览实现业务的3种常见方式基于业务的分包领域模型的门面——应用服务业务的载体——聚合根实体 vs 值对象聚合根的家——资源库创生之柱 ...
- jade变量声明和数据传递
声明一个变量 - var course = 'jade'; 取得一个变量 #{course} 大括号里面写入变量命,前面加个#号就可以取得变量 在括号里面可以进行诸多都运行操作,比如大小写 #{cou ...
- Android中sp和px之间关系探究
记得当时在刚接触Android时都在说不要用px,要用sp,所以在实际工作当中当然就按照这个规则,所以都要将px换算成sp,而我在实际工作中的换算规则是dp=px * 1.5,而且用这种规则到现在基本 ...
- golang Methods on structs
原文:http://golangtutorials.blogspot.com/2011/06/methods-on-structs.html snmp 下载,有空学习一下! https://sourc ...
- SQL SERVER表压缩
概述 SQL Server的主要性能取决于磁盘I/O效率,SQL Server .2008提供了数据压缩功能来提高磁盘I/O效率.表压缩意味着减小数据的磁盘占有量,所以压缩可以用在堆表.聚集索引的表. ...
- springcloud服务提供producer and 服务调用consumer
---------------------------------producer------------------------------------------- 1.pom文件中,作为客户端的 ...
- BZOJ 2699: 更新 (DP)
题目 对于一个数列A[1-N],一种寻找最大值的方法是:依次枚举A[2]到A[N],如果A[i]比当前的A[1]值要大,那么就令A[1]=A[i],最后A[1]为所求最大值.假设所有数都在范围[1, ...