日期:2014-05-16  浏览次数:20562 次

Linux程序设计学习笔记 1

第一章 入门

?

?

1.1 UNIX、Linux和GNU简介

简要介绍了UNIX,Linux和GUN的历史与发展。
注意到UNIX的编程哲学,Linux应该也是沿用了它的编程哲学。
简单性,程序尽量小而简单,避免复杂,复杂容易出错。
集中性,单个程序尽量只完成一个功能,复杂应用应该有多个程序组合起来实现。这其实服从了第一个特性。
可重用组件,现在程序设计不光是UNIX与Linux,Windows下的程序设计也讲求可重用,早期的DLL到如今的COM。
过滤器,说是有输入有输出,不知所云。。。
开放文件格式,不要在把配置文件与数据文件捂的严严实实,采用ASCII码或XML文件形式保存,这样可以使不同程序公用数据文件。
灵活性,不要期待用户完全按照设想来使用程序。

?

?

1.2 Linux程序设计

?

程序放哪里?

/bin 系统启动时用到的程序
/usr/bin
用户使用的标准程序
/usr/local/bin
软件会把程序安装在这
/sbin
/usr/sbin
系统管理程序
/opt
操作系统组件及第三方应用程序

用户的程序应该老老实实的放在用户自己的目录下面。

?

第一个Linux下的hello world程序

#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{
    cout << "hello world!" << endl;
    return 0;
}

编译与执行

$ g++ -o hello hello.cxx
$ ./hello

标准的头文件存储在/usr/include目录中,用户自定义的投文件,若没放在当前目录或系统头文件目录中,在编译时应使用如下选项:

$ g++ -I/usr/urpgm/include hello.cxx

Linux中,库文件分为静态库与共享库,后缀名.a代表静态库而.so代表共享库。静态库相当于Windows中的静态链接库,而共享库则相当于Windows中的动态连接库。

编译时要使用库文件,应使用命令:

?

$ g++ -o hello hello.cxx -L. -lfoo
$ g++ -o hello hello.cxx ./libfoo.a

?两条语句等价。

?

?

1.3 帮助

?

使用man,info命令可以获得帮助信息。

?

$ man gcc
$ info gcc

?