1、Linux C++学习书籍推荐:
《鸟哥的Linux私房菜 基础学习篇(第二版)》
对于从未接触过Linux提供的同学来说,本书算是一个福音,以轻松诙谐的语言说清了常用的系统命令用法及语境; 对Linux零基础的同学,推荐阅读;我看过的比较全面的讲解Linux基础的书是《LPI LINUX认证权威指南》,写的比较硬,但知识点扎实,作为需要全面梳理一遍linux基础知识的同学,还是可以好好看看,当然了,比较枯燥,如果不是有考试的动力,一般也看不动。
《Linux程序设计》
写的中规中矩,linux下编程入门指导书,讲解全面,但不深入;这本书能告诉你在linux上如何编译一个程序,如何使用gdb,但是,它不会告诉你信号量如何使用;看完必然不解渴,当然得来一剂《unix环境高级编程》。
《UNIX编程艺术》
个人认为最精彩的是前3章,将Unix的历史和渊源完美展现在读者眼前; 本书从头到尾就是在宣传Unix的文化,阐明了我们常用工具的历史及设计思想; 当你在vi和emacs的选择上有困惑时,在python和perl间的选择困惑时,可以参考本书,你会得到一个中肯的建议。
《unix环境高级编程》
对于巨著,我一向神往,国外的作者一般都能把理论和概念讲得透彻而生动; 对于本书,我的观点是:想说爱你不容易;确为经典好书,但那密密麻麻的排版格式,那一行行艰深的文字,让我一次次裹足不前。 每当有技术难点,都能在Stevens系列中找到答案。是该静下心来,好好读完它,然后常驻案边;
《UNIX网络编程 卷2》
该书的另一名称:Unix系统IPC编程圣经 在工作中,需要用到进程间通信,以及想掌握IPC知识的,本书不可或缺;对于共享内存的讲解方面,也非常透彻;
2、Linux C++学习方向及阶段
1、初级阶段
熟悉linux环境:最最简单的办法还是装个真正的linux,用虚拟机也好,在网络上的另一台机器也好。这样不仅快,而且你有了真正的环境。
C/C++语言:有C/C++语言基础
熟悉gcc命令行:最基本的参数,如,-g,-W,-O,-o,-c 建议看man gcc
编译简单的程序: 基本命令 gcc helloworld.c -o helloworld
2、提高阶段:
你需要开始了解,并熟悉ld,gdb,编写基本的Makefile,了解make程序,编程方面学习*nix系统IPC,信号行为
(该阶段非常长估计要至少几个月-一年,看个人悟性和所花时间了)
3、高级阶段:
编程方面学习Linux内核源码结构,驱动开发,进而能精简内核,了解各种library的作用和用法。编译器方面:了解系统各个主要库如 libstdc++,glibc2(libc.so),ld-linux.so.2(动态链接器),了解gcc其它各种option.ld各种, option.编写复杂的Makefile,熟悉并能使用automake和autoconf
(这个阶段,你最好自己至少编译和安装一次glibc, gcc,甚至生成cross-reference编译系统)
(该阶段基本上没有止境,编译系统和内核熟悉之后,你基本上已经是专家了)