Linux下使用JUCE类库编程开发

Linux的发行版本较多,为方便叙述,本节内容以桌面装机量较大的Debian系Ubuntu 14.0以上版本的LTS为例。其他版本,可参照办理。

使用JUCE类库在Linux下开发的程序员,遇到的首要问题是编译项目所需的库。这些库可一次性装完,也可在make时提示缺什么装什么:

如一次性装完,Debian系下,sudo升权,apt-get -y install一条长命令即可。

第二个问题:Linux下用什么编辑器或IDE

看个人爱好与习惯。Linux天然就是专为C / C++程序员准备的最佳编程环境——尽管Linus本人对C++语言和广大C++程序员颇有不屑。若说编码、调试、编译等常规活动,的确没有比在这个平台下更让人感到轻松愉悦、畅快淋漓的了,灵活性和可定制性也最强。编码方面,几个老牌编辑器(包括某些顺手或不顺手的插件)都有大量拥趸,甚至由于过分喜爱而排他,出现过群架现象……

不喜欢使用键盘快捷键的程序员,特别是从VS和XCode转过来的,习惯了图形界面下的巨无霸式编程环境,可考虑Code::Blocks、老牌新秀CLion,或者Codelite。前者,JUCE的Introjucer可导出该IDE的项目文档,方便之极。就个人而言,略喜欢后者。不过,这些IDE我用的都不多,并无太多的发言权。

遗憾的是,JUCE的Introjucer目前不支持导出CMake,手工创建和设置,非常繁琐。期待某天能柳暗花明。若如此,Linux下使用CLion估计会成为大多数人的优先选择。

此外,不要忽略了Introjucer本身就自带代码编辑器。虽然没有智能提示、自动补全、错误下标、跳转定位等功能,但是一些简单的修改及编码还是足够的。

笔者经常被问到的第三个问题依然是中文显示、中文字体包括Windows和OSX等平台下的JUCE类库使用者)。有些概念性方面的东西,我在《关于JUCE GUI程序的外观总控》这篇文章里做了简述。此处为避免口舌和以后的重复解释,干脆直接给出一个比较彻底和均衡的解决方案。

截至目前,在用JUCE开发中文界面的跨平台程序时,微软雅黑(Microsoft Yahei)是一个“各方”均无太大异议的中文字体。由于微软落后、不堪的文字渲染技术,雅黑字体在Windows的ClearType和hint等莫名其妙的东东的玩弄下,效果惨不忍睹,不堪入目,实在是暴殄天物。但是,同样的雅黑字体,Ubuntu下的效果就比较能让人接受(至少在我看来)。MAC OSX下配合视网膜屏,效果也不错。但雅黑是商业字体,Linux(Ubuntu)的发行包和软件中心并不提供,此时可手动将其“移植”过来。不过,此举是否合法、是否违背有关协议,尚需商榷。另外,界面中使用这种字体,你得假设用户的平台上也安装了。当然,还可以直接将硕大的中文字体嵌入项目中,省去假设用户已安装这个顾虑——不过,这铁定是违法的,微软绝不会授这个权[1]。说明一下:本文并不是鼓励程序员做违法和不道德之举,仅技术性研讨。

Ubuntu下安装和使用微软雅黑字体

sudo升权,/usr/share/fonts/下新建目录,将雅黑字体文件复制到此,chmod改其权限,644、755均可。依次mkfontscale,mkfontdir,fc-cache -fv。reboot后用Ubuntu的字体查看器检查一下是否装好了。如无误,可笑看某stupid吃玻璃不伤肾的声明。:)

可使用Unity Tweak等工具将雅黑设置为系统默认字体,以取代中文Ubuntu默认的Droid Sans Fallback。

项目中指定平台依赖和特定的字体,可在所需处给出这行代码(无需平台宏包裹,这句是通用的):


yourLookAndFeel->setDefaultSansSerifTypefaceName ("Microsoft YaHei");

本文作者:SwingCoder

如果本文对您有所启发或助益,请微信打赏

尾注:

  1. 据我的经验,代码中直接嵌入中文字体的二进制字节数据不可行。此举不仅使可执行文件的体积暴涨,而且程序启动时极端迟缓,或者干脆挂掉。某些比较小巧的中文字体或许可以,但雅黑不行。

创作时间: 2015.06.13 13:32
最后修改: 2017.05.10 15:24

本文版权:UnderwaySoft   共享协议:署名-非商业使用-禁止演绎


上一篇: 浅谈多线程共享数据的保护
下一篇: 关于ValueTree的一则教训与实例

 随机推荐:
Email: underwaySoft@126.com 微信公众号: UnderwaySoft