Linux 下C++编写
今天搞了一天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++编写的更多相关文章
- linux 下shell 编写脚本
linux 下shell 编写脚本: 1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和. 例如:程序给定输入123,那么应该返回1+2+3=6. 2.程序结构练习:编写一个 ...
- 2.linux下Makefile编写规范
转自陈皓 (CSDN) 概述—— 什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和 profession ...
- Linux下高效编写Shell——shell特殊字符汇总
Linux下无论如何都是要用到shell命令的,在Shell的实际使用中,有编程经验的很容易上手,但稍微有难度的是shell里面的那些个符号,各种特殊的符号在我们编写Shell脚本的时候如果能够用的好 ...
- Linux下批处理文件编写
linux下的批处理文件,基本就是shell脚本文件. 一.最简单的脚本书写方法为: 1.新建一个文件,名字为test(自己定义的名字) touch test.sh 2.在里面编写脚本 程序必须以下面 ...
- linux下shell编写九九乘法表
主要语法:类似 1x2 echo $((1*2)) for 变量 in 值1 值2 值3 ;do linux命令或者语句done
- 1.linux下Kconfig编写规范
http://www.linuxidc.com/Linux/2011-10/44721.htm
- Linux下C编写基本的多线程socket服务器
不想多说什么,会搜这些东西的都是想看代码的吧. 一开始不熟悉多线程的时候还在想怎么来控制一个线程的结束,后来发现原来有pthread_exit()函数可以直接在线程函数内部调用结束这个线程. 开始还想 ...
- linux下如何编写shell脚本
我对shell脚本的认识,除了执行过同事写的shell 脚本外,其他一无所知,为了让自己强大,我决定自己研究shell脚本,也许在你看来很简答,没必要说这么多废话,但是我希望在我的技术log里记录下来 ...
- 在linux下实现mysql自动备份数据
使用的系统为CentOS,mysql版本为5.6 备份功能主要利用以下功能实现: mysql命令中的mysqldump命令 linux下脚本编写 linux下crontab定时任务的使用 首先确定你要 ...
随机推荐
- 生产环境的redis高可用集群搭建
这里只是总结一下安装步骤 如果要了解redis集群高可用的原理,推荐仔细看一遍配置文件示例http://download.redis.io/redis-stable/redis.conf,源码包里也有 ...
- 基于矩阵模式的 Web 软件测试手段(转)
http://www.ibm.com/developerworks/cn/web/1410_dujing_matrixfortest/ 在 Web 测试中,我们经常针对某个测试点进行多种场景测试,或者 ...
- 理解Java的封装与接口
1.封装,即保留有限的外部接口(interface),隐藏具体实施细节. 2.封装在生活中很常见.比如下面是一个充电电筒: 一个用户即使不看说明书,也可以猜到这个电筒的操作: 开关和充电.这个电筒用一 ...
- linux学习之centos(二):虚拟网络三种连接方式和SecureCRT的使用
---操作环境--- 虚拟机版本:VMware Workstation_10.0.3 Linux系统版本:CentOS_6.5(64位) 物理机系统版本:win10 一.虚拟网络三种连接方式 当在V ...
- vi 每日练习
vi 1. 4 空格 2. ctrl + b, ctrl + f 3. 0 $ 4. 1G gg G 5. 10G 6. 10 回车 7. / ? 8. ...
- Oracle数据库之四
删除记录的SQL语句 delete from 表名[where 条件];(DML) 注意: 如果没有where子句,代表全部删除(慎用). delete也必须commit后才能生效 truncate也 ...
- Codeforces 377 A Maze【DFS】
题意:给出n*m的矩阵,矩阵由'.'和'#'组成,再给出k,表示需要在'.'处加k堵墙,使得剩下的'.'仍然是连通的 先统计出这个矩阵里面总的点数'.'为sum 因为题目说了一定会有一个解,所以找到一 ...
- ASP.NET 时间方法大全
DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(- Convert.ToInt32(dt.DayOfWeek.To ...
- 整理一些js中常见的问题
原文链接 1.js获取select标签选中的值 原生js var obj = document.getElementByIdx_x(”testSelect”); //定位id var index = ...
- 定时组件quartz系列<二>quartz的集群原理
1.基本信息: Quartz是一个开源的作业调度框架,它完全由java写成,并设计用于J2Se和J2EE应用中.它提供了巨大的灵活性而不牺牲简单性.你能够用它 来为执行一个作业而创建简单的或 ...