标签:void 进入 计算机系 帮助 选择 文件中 href 代码 git
1.单文件
预处理:
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
或者直接用ESC.iso
2.多模块
一起编译:
gcc test_a.c test_b.c -o test
或者gcc *.c -o test
分别编译各个源文件,之后对编译后输出的目标文件链接
3.-I参数
*.h文件放在include中,.c文件放入src中
用于指明头文件路径**
b 5(如果要在第五行断点)
b 5 if i=5
TAB
命令 | 简写形式 | 说明 |
---|---|---|
list | l | 查看源码 |
backtrace | bt、where | 打印函数栈信息 |
next | n | 执行下一行 |
step | s | 一次执行一行,遇到函数会进入 |
finish | 运行到函数结束 | |
continue | c | 继续运行 |
break | b | 设置断点 |
info breakpoints | 显示断点信息 | |
delete | d | 删除断点 |
p | 打印表达式的值 | |
run | r | 启动程序 |
until | u | 执行到指定行 |
info | i | 显示信息 |
help | h | 帮助信息 |
执行shell命令
在gdb命令行界面可以执行外部的shell命令:
(gdb) !shell命令
静态库
生成:
①生成四个.o文件
gcc -c -I/头文件所在路径 add.c sub.c mul.c div.c
②生成静态库ar rcvs libmath.a add.o sub.o mul.o div.o
调用:先后使用
gcc main.c -o main -I/头文件所在路径 -L. -lmath
和./main
来生成main文件并调用静态库执行文件
动态库
生成:
①生成四个文件:
gcc -fPIC -c -I/头文件所在路径 add.c sub.c mul.c div.c
②生成动态库(共享):gcc -shared -o mymath.so add.o sub.o mul.o div.o
调用:
gcc -I/头文件所在路径 -o main main.c -L. -lmath
注意!!如果执行文件发生错误,则返回上一级查看文件
libmath.a
或者mymath.so
是否在lib里,若不是则通过mv
语句将文件移到lib
下
创建:vi makefile
targets : prerequisites
command
或者
targets : prerequisites ; command
command
、、、
问题1:
没有定义printf,无法编译
问题1解决方案:
通过vi编辑main.c程序,在前面加入‘#include<stdio.h>‘即可
问题2:
invalid of voidexpression
问题2解决方案:
通过vi编辑main.c程序,在前面加入
#include‘head.h‘
即可
问题3:
程序报错
main.c中无head.h文件
问题3解决方案:
返回上一级目录,再输入命令行
gcc src/main.c -o src/main lib/libmath.a -I include
,从而生成可执行文件main
问题4:
makefile:3: *** missing separator.
问题4解决方案:
在make命令后出现这种错误提示,是提示第2行没有分隔符。
例如:
1 target:prerequisites2 command
……
改为:
1 target:prerequisites2????command
……
就可以了。
在Makefile文件中,命令必须以【tab】键开始。
问题5:
make: *** No rule to make target ‘head.h‘, needed by ‘main.o‘。
问题5解决方案:
将
head.h
文件移动到src中即可,其实还尝试了在makefile中添加CFALGS来说明head.h
路径,但是仍然报错,后来搜到出错的还可能是多余的空格导致的,于是逐行排查,结果发现仍然有问题,最后选择了移动head.h
文件。
新学期,希望自己能多下功夫,做到学以致用。通过这几次测试对C文件处理内容的相关知识有了进一步的认识与掌握,以后再接再励,学到更多知识。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 87/100 | 2/2 | 20/20 |
尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式
:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。
计划学习时间:5小时
实际学习时间:10小时
改进情况:
2018-2019-1 20165226 《信息安全系统设计基础》第1周学习总结
标签:void 进入 计算机系 帮助 选择 文件中 href 代码 git
原文地址:https://www.cnblogs.com/musea/p/9684695.html