2016年7月25日星期一

Debian使用

1       无线驱动缺失问题
        解决:跳过安装,进入系统后,在终端下输入dpkg -i 安装无线驱动。
2       科学上网问题
        解决:代理插件+导入证书
3       新版本软件获取
        解决:官网下载deb包/源码
4       系统备份与还原
         解决:http://www.pythonhk.com/artile/view/71


C++语言

操作系统

计算机英语

2016/07/22
a vague idea@模糊的概念
some sort of reference@一些参考
make "batch" processes@批量处理
Familiarity with GNU/Linux command lines@熟悉命令行
Concurrence@并发  
Shareing@共享
Virtual@虚拟
Asynchronism@异步
Originally@最初
lowercase letters@小写字母
capital letter@大写字母
with an underscore@带下划线
through the years@这些年来
The purpose of this is to  keep compatibility with already written code@兼容
It is certain that it will support the 32 words from rhe ANSI standard@可以确定的是
most of the time this is enough@这已经足够了
macros@宏命令
Pre-processor directives@预处理命令

2016/07/26
the Learn C++ tutorials@教程







程序编译过程认识

  使用debian,为获取新的软件特性,常常需要自行编译源码。编译源码需要依次键入命令,
常常在enter一条命令后,经常会被卡住,为了新软件特性,我被迫去了解程序编译的流程。
 
1  程序编译的流程:
     1.1  编译器读取main源文件的 #include部分,将 #include包含的.h头文件的内容读入添加到,
            main源文件中。再作宏名替换成数值。
     1.2  编译器将预编译处理准备好的main源文件,先编译成汇编代码,然后再通过汇编器,
            编译成二进制代码。
     1.3  编译器调用链接器linker。 linker将同个文件夹内编译成二进制代码的cpp文件,连接起来
            组合成可执行程序文件,这个link称为静态链接。动态链接是在main.o中添加含有其他函
            数的动态.so模块的位置信息,组成main可执行程序文件。当main运行时,linker会去指定
            位置找函数实现代码。

2  对头文件的理解:
     2.1  头文件的作用:许多函数原型添加概括为一条#include, 减少了无意义的重复。
                                        独立的模块,更改函数原型方便。
                                        抽出main中的函数原型声明和宏定义,方便main主文件阅读。
     2.2  写头文件        : 头文件分为header guard 和 declaration 两部分。
                                         
                                          #ifndef _ADD_H
                                          #define _ADD_H
                                         
                                          int add(int,int);
                   
                                          #endif
     2.3  用头文件       : <> 和“ “ 表示告诉编译器头文件的位置。
                                        <> 表示头文件在根目录,” ”表示头文件在当前目录/自定义目录
                                        <> ""还可以用来区分标准库和其他库,按照惯例命名。标准库用<>
                                        自定函数也是可以用<>,写完将自定函数头文件放进标准库的文件里
 3  对linker的理解:
      3.1  linker默认只会去/usr/lib/x86_64-linux-gnu/,去找动态库模块。自定义函数实现咬动态链
             接的,可以用g++ add.cpp -fPIC -shared -o libadd.so,将cpp做成so模块,再放进x86_64-
             linux-gnu文件夹里面。 静态链接的,将多个cpp文件放在同一文件夹,同时编译链接就
             好了。g++ add.cpp main.cpp - o main.
4   不理解:
            用g++.静态链接编译后的程序比动态链接的体积咬小。用codeblock编译的比g++的体积大好多。  codeblock添加#include<iostream> ,编译链接后,体积大9KB左右。


2016年7月20日星期三

/.vimrc配置不生效的原因

  跟着这位兄台(https://github.com/yangyangwithgnu/use_vim_as_ide)的教程,一步一步照做,发现,总是出错,卡在PluginInstall插件安装命令和~/.vimrc文件配件不生效的情况。
  问题贴图

                 1 :PluginInstall命令错误
    2  ~/.vimrc配置不生效

  问题原因
后来我不小心在root权限打开vim和gvim,结果配置生效了。猜想是user问题,测试后,确定了是我把/.vimrc写在root用户的目录。所以在my用户是不存在/.vimrc文件的,没有配置文件,所以在my用户的终端下,打开vim/gvim自然不会有任何变化(PluginInstall命令的问题也是这样的原因)。我二逼了........

  问题解决
    在终端,以my用户,写入./vimrc文件,(vi ~/.vimrc) 。Vundle插件也得安装在my用户下,这样:PluginInstall命令就可以用了。




2016年7月18日星期一

Linux命令行的ls命令彩色显示

  问题:ls后文件夹和文件显示都是白色,不易区分文件和文件夹。

  解决方法
  1 永久生效(需要root)
    修改~/.bashrc,将下面语句行首的#去掉即可。
 
    export LS_OPTIONS='--color=auto'
      eval "`dircolors`"        
     alias ls='ls $LS_OPTIONS'
     alias ll='ls $LS_OPTIONS -l'
      alias l='ls $LS_OPTIONS -lA
  2 临时生效
    临时生效彩色的话可以通过执行alias ls='ls --color',关掉终端就不再生效。
  效果贴图