zoukankan      html  css  js  c++  java
  • 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]

  • 相关阅读:
    Redmine入门-安装
    【Spring Cloud笔记】 Eureka通过集群实现高可用
    【SpringBoot笔记】SpringBoot整合Druid数据连接池
    【Spring Cloud笔记】 断路器-hystrix
    【Spring Cloud笔记】Eureka注册中心增加权限认证
    Jenkins实现简单的CI功能
    【SpringBoot笔记】SpringBoot如何正确关闭应用
    Activi相关表归纳
    阿里云MySQL远程连接不上问题
    Storm入门-Storm与Spark对比
  • 原文地址:https://www.cnblogs.com/lp3318/p/5612267.html
Copyright © 2011-2022 走看看