有了一个linux环境以后,接下来要做的事情就是熟悉它。而那些bash命令显然满足不了我们的需求,于是,让我们真刀真枪在linux下编程序吧。
第一个程序当然是老掉牙的hello world了。打开心爱的linux的家:cygwin,接下来怎么新建文件,怎么写程序呀?
这个问题的答案也是我推荐cygwin的一个原因,就是你可以在windows下用记事本或者你喜欢的IDE把程序写好,然后把文件复制到linux 下的自己目录里面。
我知道你现在想打我,说这算什么linux编程啊,但是我这几篇博客的目的是让初学linux的朋友一步一步从windows下迁移过来,所以直接从windows下拷贝是最直接了当的事情,我想先介绍源文件的编译,然后再介绍其他,这样过渡平滑一些。
在windows下面用记事本编写如下程序:
#include <iostream> using namespace std; int main(){ cout << "hello" << endl; return 0; }
有了源代码,下一步就是用这个源代码生成可执行程序了。我们用g++编译器,首先运行cygwin的安装文件,更新一下我们的linux,在选择软件包的那一步,搜索g++,然后选中安装就ok了,如图所示:
用g++编译hello.cpp的过程,我也用文本的方式贴在后面,用"//"的方式把我做的注视在后面:
Eric@Eric-PC ~ $ ls //显示当前目录内容 hello.cpp Eric@Eric-PC ~ $ g++ hello.cpp //使用g++编译源文件hello.cpp Eric@Eric-PC ~ $ ls a.exe hello.cpp //g++默认编译后生成可执行文件为a.exe Eric@Eric-PC ~ $ ./a.exe //运行可执行文件a.exe hello //输出hello Eric@Eric-PC ~ $ g++ -o hello.exe hello.cpp //g++使用-o选项,指定生成的可执行文件为hello.exe Eric@Eric-PC ~ $ ls //查看当前目录内容 a.exe hello.cpp hello.exe //3个文件,没问题吧 Eric@Eric-PC ~ $ ./hello.exe //执行hello.exe hello //效果和a.exe一样,都是从同一个源文件编译得来的 Eric@Eric-PC ~ $ //该你了,写个不同的程序多练练
编完hello world了,那下一步呢? 我这里强烈推荐一个网站:USACO(http://ace.delos.com/usacogate)。里面由易到难设计了各种算法题,可以带领你从菜鸟走向大牛。就算哪天我不再写博客,你也一定要坚持把那个网站上的题做完,做完后网易腾讯随便进。具体怎么在那个网站提交程序,仔细阅读网站里面的内容,相信你能自己搞定。
然后有两个问题。
第一,就是那个网站是英语的,但是不要怂,是程序员的话英语绕不过去的,硬着头皮上吧,就算你和初高中英语女老师有很深的怨念,这道坎必须迈过去,而且这道坎其实没有想象中难,很多都是计算机专业的词汇,查一两个礼拜词典,你就发现那些单词你都认识了。
第二,我建议你和志同道合的朋友、同学一起学习,一起上网站,一起编程,几个人的进步总是比一个人快的,单词不认识也可以互相问问。不过,最后的程序一定是每个人单独写出来的,不要互相拷贝。今天和你一起编程的人,明天就可能和你一起创业,所以,不要一个人战斗。
因为我是用C++的,所以这里只能给出C++的指导。从这篇博客开始,我会写几篇博客,介绍linux下的一套工具,主要有: