Linux下使用JUCE类库编程开发-1

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

2015-06-13 第1张

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

  • g++
  • libfreetype6-dev
  • libx11-dev
  • libxinerama-dev
  • libxrandr-dev
  • libxcursor-dev
  • mesa-common-dev
  • libasound2-dev
  • freeglut3-dev
  • libxcomposite-dev
  • libjack-jackd2-dev

如一次性装完,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本身就自带代码编辑器。虽然没有智能提示,自动补全,错误下标,跳转定位等功能,但是一些简单的修改及编码,还是足够的。

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

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

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

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

2015-06-13-20 第2张

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

2015-06-13-20-07 第3张

使用JUCE类库的开发项目中指定平台依赖和特定的字体,可在所需处(无需平台宏包裹,这句是通用的):

yourLookAndFeel->setDefaultSansSerifTypefaceName ("Microsoft YaHei");