zoukankan      html  css  js  c++  java
  • [linux] linux知识积累(不断更新中…)

    一、vim知识

    f(find)命令也可以用于移动,fx将找到光标后第一个为x的字符,3fd将找到第三个为d的字符。

    D 删除当前字符至行尾。D=d$

    :split或new 打开一个新窗口,光标停在顶层的窗口上

    :split file或:new file 用新窗口打开文件

    二、如何替换搜索第二个match的字符

    sed –i ‘s/xxx/yyy/2’file

    三、gcc的知识

    选项-c

    用法:#gcc-c test.s

    作用:将汇编输出文件test.s编译输出test.o文件。

    无选项链接

    用法:#gcctest.o -o test

    作用:将编译输出文件test.o链接成最终可执行文件test。

    分别编译各个源文件,之后对编译后输出的目标文件链接。

    用法:

    #gcc-c testfun.c //将testfun.c编译成testfun.o

    #gcc-c test.c //将test.c编译成test.o

    #gcc-o testfun.o test.o -o test //将testfun.o和test.o链接成test

    头文件

    gcc在编译时怎么去寻找所需要的头文件:
    ※所以headerfile的搜寻会从-I开始
    ※然后找gcc的环境变量C_INCLUDE_PATH,CPLUS_INCLUDE_PATH,OBJC_INCLUDE_PATH
    ※再找内定目录
    /usr/include
    /usr/local/include
    /usr/lib/gcc-lib/i386-linux/2.95.2/include
    /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../include/g++-3
    /usr/lib/gcc-lib/i386-linux/2.95.2/../../../../i386-linux/include

    库文件
    编译的时候:
    ※gcc会去找-L
    ※再找gcc的环境变量LIBRARY_PATH
    ※再找内定目录/lib/usr/lib /usr/local/lib这是当初compilegcc时写在程式内的

    -Dmacro
    相当于C语言中的#definemacro
    -Dmacro=defn
    相当于C语言中的#definemacro=defn
    -Umacro
    相当于C语言中的#undefmacro
    -undef
    取消对任何非标准宏的定义

    -Idir
    在你是用#include"file"的时候,gcc/g++会先在当前目录查找你所制定的头文件,如
    果没有找到,他回到缺省的头文件目录找,如果使用-I制定了目录,他
    回先在你所制定的目录查找,然后再按常规的顺序去找.
    对于#include<file>,gcc/g++会到-I制定的目录查找,查找不到,然后将到系统的缺
    省的头文件目录查找
    -I-
    就是取消前一个参数的功能,所以一般在-Idir之后使用

    -g
    只是编译器,在编译的时候,产生调试信息。

    -static
    此选项将禁止使用动态库,所以,编译出来的东西,一般都很大,也不需要什么
    动态连接库,就可以运行.

    -share
    此选项将尽量使用动态库,所以生成文件比较小,但是需要系统由动态库.

    -w不生成任何警告信息。
    -Wall生成所有警告信息。

    无论静态库,还是动态库,都是由.o文件创建的。

    静态库文件名的命名规范是以lib为前缀,紧接着跟静态库名,扩展名为.a。例如:我们将创建的静态库名为myhello,则静态库文件名就是libmyhello.a。在创建和使用静态库时,需要注意这点。创建静态库用ar命令。

           在系统提示符下键入以下命令将创建静态库文件libmyhello.a。

    #ar cr libmyhello.a hello.o

    #gcc -o hello main.c -L. –lmyhello

    动态库文件名命名规范和静态库文件名命名规范类似,也是在动态库名增加前缀lib,但其文件扩展名为.so。例如:我们将创建的动态库名为myhello,则动态库文件名就是libmyhello.so。用gcc来创建动态库。

    在系统提示符下键入以下命令得到动态库文件libmyhello.so。

    #gcc -shared -fPCI -o libmyhello.so hello.o

    四、MakeFile

  • 相关阅读:
    【BestCoder #48】
    【一场模拟赛?】
    【普通の随笔】6.30
    【BestCoder #45】
    【BestCoder #44】
    【普通の惨败】GDOI2015卖萌记
    我的新博客
    【BZOJ 2964】Boss单挑战
    【NOI 2015】软件包管理器
    【NOI 2015】程序自动分析
  • 原文地址:https://www.cnblogs.com/yingfang18/p/5013008.html
Copyright © 2011-2022 走看看