当前位置: 首页> 财经> 产业 > 【Linux】Linux环境基础开发工具_4

【Linux】Linux环境基础开发工具_4

时间:2025/8/24 23:59:02来源:https://blog.csdn.net/m0_69828905/article/details/139395353 浏览次数:0次

文章目录

  • 四、Linux环境基础开发工具
    • gcc和g++
      • 动静态库的理解
    • make和Makefile
    • Linux小程序---进度条
  • 未完待续


四、Linux环境基础开发工具

gcc和g++

动静态库的理解

动态库的优点:比较节省资源,不会出现太多重复代码。
动态库的缺点:对库的依赖性比较强,一旦库丢失,所有使用这个库的程序都无法运行。
静态库的优点:不依赖库,同类型平台中都可以直接使用。
静态库的缺点:可执行程序体积比较大,比较浪费资源。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
怎么静态链接呢?可以在gcc后面加上 -static 选项
由于云服务器里面默认没有安装静态库,所以我们在使用静态库前需要手动安装一下静态库。

sudo yum install -y glibc-static libstdc+±static

在这里插入图片描述
动态链接gcc 的默认链接方式。

make和Makefile

make 是一个命令,makefile 是一个文件。makefile里面存的是不同文件之间的依赖关系个依赖方法。
在这里插入图片描述
在这里插入图片描述
注意第二行是一个 tab ,不是空格!
在这里插入图片描述

mybin(目标文件):mytest.c(依赖文件列表)

使用 make 可以构建项目,那怎么清楚项目呢?我们需要在 Makefile 里面加点东西。
在这里插入图片描述
在这里插入图片描述
为什么我们 make 的时候不需要指定名字呢?而执行 make clean 则需要带上 clean ?其实是,make 默认的是 Makefile 文件里的从上往下第一个目标文件,所以不需要写 make mybin 的后半部分。而且我们发现make的时候并没有执行 make clean ,所以我知道: make 默认只执行一个,
当依赖文件未被更新的时候,是无法多次 make 的,如果想要使其 mybin 能够总是被执行,可以在 Makefile 里加上:
在这里插入图片描述
但是不建议将目标文件修饰成一个伪文件。更建议将 clean 给修饰成一个伪文件。
在这里插入图片描述
以后修改Makefile的时候,只需要修改上面那部分变量就可以了。

Linux小程序—进度条

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意先测试自己写的 Makefile 是否能用。接下来继续编写 mytest.c 文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是明明是 printf 先执行,为啥先 sleep 呢?其实 printf 其实已经跑完了,只是被缓冲区保存起来了,直到程序退出的时候才被刷新出来。
我们继续写 mytest.c 文件:
在这里插入图片描述
在这里插入图片描述
当然我们要做的是进度条而不是倒计时,我们这里还只是知识储备而已。
在这里插入图片描述

  1 #include <stdio.h>2 #include <unistd.h>3 #include <string.h>4 5 #define MAX 1016 #define LABLE '#'7 8 int main()9 {10   char bar[MAX];11   memset(bar, '\0', sizeof(bar));12   int i = 0;13   while (i <= 100)14   {15     printf("%s\r", bar);16     // 刷新缓冲区17     fflush(stdout);18     bar[i++] = LABLE;                                                                                19     // 微秒级别20     usleep(100000);21   }22   printf("\n");23   return 0;24 }

在这里插入图片描述
到这里还没有结束,我们下篇再实现更加精细的进度条。


未完待续

关键字:【Linux】Linux环境基础开发工具_4

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: