今天搞了一天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]

Linux 下C++编写的更多相关文章

  1. linux 下shell 编写脚本

    linux 下shell 编写脚本: 1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和. 例如:程序给定输入123,那么应该返回1+2+3=6. 2.程序结构练习:编写一个 ...

  2. 2.linux下Makefile编写规范

    转自陈皓 (CSDN) 概述—— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 profession ...

  3. Linux下高效编写Shell——shell特殊字符汇总

    Linux下无论如何都是要用到shell命令的,在Shell的实际使用中,有编程经验的很容易上手,但稍微有难度的是shell里面的那些个符号,各种特殊的符号在我们编写Shell脚本的时候如果能够用的好 ...

  4. Linux下批处理文件编写

    linux下的批处理文件,基本就是shell脚本文件. 一.最简单的脚本书写方法为: 1.新建一个文件,名字为test(自己定义的名字) touch test.sh 2.在里面编写脚本 程序必须以下面 ...

  5. linux下shell编写九九乘法表

    主要语法:类似    1x2       echo   $((1*2)) for 变量 in 值1 值2 值3 ;do linux命令或者语句done

  6. 1.linux下Kconfig编写规范

    http://www.linuxidc.com/Linux/2011-10/44721.htm

  7. Linux下C编写基本的多线程socket服务器

    不想多说什么,会搜这些东西的都是想看代码的吧. 一开始不熟悉多线程的时候还在想怎么来控制一个线程的结束,后来发现原来有pthread_exit()函数可以直接在线程函数内部调用结束这个线程. 开始还想 ...

  8. linux下如何编写shell脚本

    我对shell脚本的认识,除了执行过同事写的shell 脚本外,其他一无所知,为了让自己强大,我决定自己研究shell脚本,也许在你看来很简答,没必要说这么多废话,但是我希望在我的技术log里记录下来 ...

  9. 在linux下实现mysql自动备份数据

    使用的系统为CentOS,mysql版本为5.6 备份功能主要利用以下功能实现: mysql命令中的mysqldump命令 linux下脚本编写 linux下crontab定时任务的使用 首先确定你要 ...

随机推荐

  1. 常用加密算法的Java实现总结

    常用加密算法的Java实现(一) ——单向加密算法MD5和SHA 1.Java的安全体系架构 1.1           Java的安全体系架构介绍 Java中为安全框架提供类和接口.JDK 安全 A ...

  2. sql 随笔 2015-08-07

    xls 导入数据库 --删除现有数据 DELETE FROM dbo.PhoneList --插入数据 insert into dbo.PhoneList --读取xls数据 ) , as [Enab ...

  3. ubuntu添加环境变量【原创】

    cpro放到环境变量里,并且加上可执行权限如果在本地添加,则需mkdir ~/bin mv cpro /home/zhangbh/bin/vi ~/.bashrcexport PATH=/usr/lo ...

  4. 关于c#字典key不存在的测试

    之前一直隐约记得没有创建key会报异常,测试了下. 测试结果: 写入值,如果不存在key,会自动创建. 取值,如果不存在key,会报异常. 一般用c#提供了尝试取值方法,不过有out参数,考虑写扩展 ...

  5. 计算文件的MD5值(Java & Rust)

    Java public class TestFileMD5 { public final static String[] hexDigits = { "0", "1&qu ...

  6. Itext导出PDF,word,图片案例

    iText导出pdf.word.图片 一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生 ...

  7. 聚集索引、非聚集索引、聚集索引组织表、堆组织表、Mysql/PostgreSQL对比、联合主键/自增长、InnoDB/MyISAM(引擎方面另开一篇)

    参考了多篇文章,分别记录,如下. 下面是第一篇的总结 http://www.jb51.net/article/76007.htm: 在MySQL中,InnoDB引擎表是(聚集)索引组织表(cluste ...

  8. VS2010 需要缺少的web组件才能加载该项目

    到的问题是解决方案中部分项目无法加载, 提示需要缺少的web组件才能加载该项目,是否通过WEB安装组件来网络安装, 点击确定以后就什么也没有了. 到微软网站去下载Microsoft Web Platf ...

  9. UIView的user Interaction Enabled属性

    A Boolean value that determines whether user events are ignored and removed from the event queue. 译: ...

  10. Jave 鼠标点击画太极 PaintTaiji (整理)

    package demo; /** * Jave 鼠标点击画太极 PaintTaiji (整理) * 声明: * 又是一份没有注释的代码,而且时间已经久远了,不过代码很短,解读起来应该 * 不会很麻烦 ...