Linux Programming, Language C 1 – GCC

在前一篇的GetStarted里,我们提到了Linux下的C编程离不开编译(Compile)、链接(Link),还有调试(Debug)。

现在我们重点来说一下,怎么在不依赖集成开发环境(IDE)的情况下,使用GCC编译器进行C编程。

Hello World的C语言源代码:

GCC编译

运行

GCC编译器

GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器。它是一套以GPL及LGPL许可证所发行的自由软件,也是GNU计划的关键部分,亦是自由的类Unix及苹果计算机Mac OS X操作系统的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。
GCC 原名为GNU C语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、Java, 以及 Ada 与其他语言。原本用C开发,后来因为LLVM、Clang的崛起,令GCC更快将开发语言转换为C++。
Continue Reading…

Linux Programming, Language C 0 – GetStarted

在我们正式开始前,让我们回想一下,C语言编程的一般顺序是什么?
1.源代码
2.编译,链接,运行
3.调试,发布

无论在不同的系统环境还是不同的集成开发环境下,C语言编程都是上面的这个顺序。

很多集成开发环境很善解人意的把第2步直接变成一个按钮,或者Ctrl+F5快捷键,一键完成这几个步骤。初学者看不到这块的内容,不知道这一块的内容,只知道这是一个按钮就可以完成的事。但是编程的本质没变,只是被隐藏了而已。

编译(Compile)和链接(Link)是C语言,甚至大部分语言从源代码到可执行程序都必须经历的两个步骤。大部分程序都不是用一个源文件写出来的。编译先针对单独源文件进行处理。链接是把编译处理的文件和库链接成一个完整的可执行文件。
Continue Reading…

Leap Motion Controller for Linux

一个月前,我拿到了期待已久的Leap Motion机器。这玩意,很意外的成为我接下来半年,甚至更长时间的工作/研究重点。

开始玩回Linux也是因为想借此研究用Linux进行开发。(之所以说玩回,是因为我最早玩Linux可以追溯到初二,在虚拟机上帮全部Linux发行版尝鲜了一遍。后来的几年陆陆续续装过几次,用过几次,但是可惜没有深入。)

让我的Leap Motion在Linux上跑起来,我走了不少弯路。刚拿到手的时候,我在Leap Motion的官网竟然找到了Leap Motion的SDK for Linux,但是却没找到Controller software and device drivers for Linux,即Linux下的驱动和控制器。

这意味着,我可以在Linux下开发,但是无法把设备跑起来。后来因为考试和放假回家过年,我竟然没去开发者论坛问或者细查官方文档,甚至Google。然后在没有细究的情况下,以为事实就是这样。

今天想起来了。上官网,发现Linux下的控制器竟然出现了!然后去论坛查看了一下,好像还存在好长一段时间了。但我记得明明上次还没有的啊。不知道是官方刚放出来的,还是以前眼瞎了。希望知道的人能告诉我。
Continue Reading…