![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux系统编程
文章平均质量分 87
Linux系统编程
lkdcom
把钱都给我,我帮你搞定它
展开
-
gcc编译介绍
1. 编译步骤编译步骤:预处理,编译,汇编,链接1.预编译:gcc -E hello.c -o hello.i2.编译:gcc -S hello.i -o hello.s3.汇编:gcc -c hello.s -o hello.o4.链接:gcc hello.o -o hello -o是指定生成文件的的文件名1.1 预处理首先预处理是展开代码中所有的宏定义,展开代码中使用到的头文件,替换代码中所有的条件编译,删除代码中所有的注释、空行、空白。1.2 编译编译是检查代码中语法规范,这一阶段原创 2022-10-01 15:52:46 · 526 阅读 · 0 评论 -
动态库和静态库
其中 -L 指定库的存储路径, -l 指定库的名称(不需要前面的‘lib’和扩展名‘.so’),如果在库的存储路径有同名的共享库和静态库,gcc 默认使用共享库生成之后,直接执行 main 程序,发现出错,原因是系统加载共享库时,找不到对应的共享库文件”libfoo.so”, 但是该库确实在当前目录下存在。(静态库和动态库最本质的区别就是:该库是否被编译进目标(程序)内部)libadd.a是库的名字(不提前缀和后缀),add.o 是要打包到静态库中的.o文件,.o文件里头就是我们编译好的方法。原创 2022-09-30 11:42:28 · 356 阅读 · 0 评论