今天搞了一天Linux下C++编程,还没有什么成效。好烦躁好心焦,想砸电脑的冲动。抽根烟理下思路一定要把它拿下!!
===搞了两天,真是搞到生无可恋,试了共享文件, 试了网络配置,各种博客就是各种行不通(其实,个人觉得,同一个问题很多人都会遇到,但是每个问题又有无数个细节左右,可能别人根据这种方法解决了,对你并不一定好使。不要太过于依赖博客,作为参考即可,还是要学会分析问题抓住核心,大不了推倒从来)。还好,跟一实验室的朋友一起弄,他在某大公司培训过Linux,自是熟练得多,也没搞出。。。。重装!!!!!是啊,所有路都走不通的时候为什么不从头再来呢?果断好使了啊。
前言:
很专业的介绍编辑器:http://blog.csdn.net/netanimals/article/details/6446174
Windows下,开发工具多以集成开发环境IDE的形式展现给最终用户,而linux下,开发工具被切割成一个个独立的小工具。各自处理不同的问题。例如:
编辑器(emacs, vim) 用来进行编辑程序的
调试器(gdb) 用来调试程序
编译器(GCC) 用来编译和链接程序的
性能分析工具(gcov, gprof) 用来优化程序的
文档生成器(doxygen) 用来生成文档的
GCC可以看作一个软件包,除了编译工具,它还集成了调试器gdb,性能分析工具gcov, gprof。只要我们装好了GCC,这些强大工具就可以直接使用了。
联网状态下:yum install gcc 自动解决依赖问题
但是yum install gcc-c++ libstdc++-devel 安装g++就不成功
用which g++就可以查看g++安装成功与否(在。/usr/bin)
文件的编译过程:
在一次电话面试中被问到c++文件的编译过程,没怎么准备的我自然是没有答上来啊,面试官很nice的鄙视了一把。
编译原理给的过程:
一.词法分析
二.语法分析
三.语义分析
四.优化
五.目标代码生成
另一种详细的说法:(图来源于:http://www.cnblogs.com/kekec/p/3238741.html)
预处理:主要是做一些代码文本的替换工作。(该替换是一个递归逐层展开的过程。)
(1)将所有的#define删除,并展开所有的宏定义
(2)处理所有的条件预编译指令,如:#if #ifdef #elif #else #endif
(3)处理#include预编译指令,将被包含的文件插进到该指令的位置,这个过程是递归的
(4)删除所有的注释//与/* */
(5)添加行号与文件名标识,以便产生调试用的行号信息以及编译错误或警告时能够显示行号
(6)保留所有的#pragma编译器指令,因为编译器需要使用它们
编译:把预处理完的文件进行一系列词法分析(lex)、语法分析(yacc)、语义分析及优化后生成汇编代码,这个过程是程序构建的核心部分。
汇编:汇编代码->机器指令。
链接:这里讲的链接,严格说应该叫静态链接。多个目标文件、库->最终的可执行文件(拼合的过程)。
http://blog.csdn.net/microzone/article/details/6707327
此过程中我自己用到的一些命令记录如下:
1.执行一下 ifconfig 命令,看看目前工作的网卡是哪个
2.linux删除目录使用rm -rf命令即可。
直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
3.lspci :查看网卡的硬件信息 (如果是usb设备,则用lsusb)
4.ifconfig : 查看接口信息
(ifconfig -a :所有网络接口; ifconfig eth0:查看eth0接口)
(ifup eth0:启用网卡eth0; ifdown eth0 :禁用网卡eth0)
5.setup:手动配置ip,getway,network等
[所有网卡信息在配置文件中:/etc/sysconfig/network-scripts/]
[DNS配置文件:/etc/resolv.conf]
[主机名配置文件:/etc/sysconfig/network]