• 2018-2019-1 20165331 《信息安全系统设计基础》第一周学习总结


    2018-2019-1 20165331 《信息安全系统设计基础》第一周学习总结

    gcc编译器

    常用参数:

    -I:在此参数后添加自定义头文件的路径
    -E:表示对.c文件预处理,输出.i文件
    -S:表示对.i文件进行编译,输出.s文件
    -c:表示对.s文件进行汇编,输出.o文件
    -o:指定生成的输出文件
    -l:指定程序要链接的库
    -L:指定库文件所在目录

    操作格式:

    gcc -E hello.c -o hello.i
    gcc -S hello.i -o hello.s
    gcc -c hello.s -o hello.o
    gcc hello.o -o hello
    使用通配符进行多模块编译

    gdb的使用

    首先在编译时加入-g参数以进行调试
    gdb:打开gdb
    file ...:在gdb中打开某文件
    l&list:每10行列出程序
    b n:在第n行添加断点
    b n if ...:在第n行添加一个条件为...的条件断点
    r:运行程序
    next:运行下一步
    clear:清除断点
    quit:退出gdb

    库的生成与使用

    静态库

    生成:ar rcvs mymath.a *.o
    调用:gcc main.c -o main -L. -lmath

    共享库

    生成:gcc -shared -fpic -o mymath.so *.c
    调用:gcc -o link main.c ./mymath.so

    Makefile

    基本格式:

    target 目标文件名 : 生成目标文件所需文件
    make执行的命令
    ...
    ...
    需要注意的是在vi中,第二行开始的各项命令都需要使用Tab键空出首位。

    执行过程:

    vi makefile
    make
    ./...

  • 相关阅读:
    【从零开始】【Java】【3】改造成多模块项目
    atomic nonatomic区别
    UIBezierPath
    全局块、栈块、堆块
    动态修改可变数组元素
    layoutSubviews
    约束Constraints
    Objective-C实现一个简单的栈
    NSString 使用 copy、strong
    ARC中__weak;__strong;__unsafe_unretained;修饰词
  • 原文地址:https://www.cnblogs.com/violence/p/9694112.html
Copyright © 2020-2023  润新知