我是靠谱客的博主 传统白开水,最近开发中收集的这篇文章主要介绍Makefile的书写规则以及/usr/bin/ld: cannot find -lcsudo yum install glibc-static,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

从学习Linux那一刻开始,一直就有人说,能不能写Makefile是考验你是否具备完成大型工程的能力。
makefile关系到了整个工程的编译规则。一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。

makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令。
关于程序的编译和链接

这里写图片描述
下来我们来了解关于Makefile的书写
假设我们需要编译一个test.c文件,Makefile的编写方法如下
第一种写法
这里写图片描述

第二种写法
这里写图片描述
一般要使用静态链接库,只需要给依赖的文件名后面接一个XXX_static即可, 最后面再加上-XXX
现象:执行gcc静态编译程序时报错:

/usr/bin/ld: cannot find -lc

collect2: ld returned 1 exit status
make: * [gcc_dry2] Error 1
(或者调用Makefile编译时报错)

原因:程序链接需要静态库,系统没有安装静态库导致报错

解决:安装静态库

sudo yum install glibc-static

这里写图片描述
Makefile的执行只需要执行一句make语句即可进行编译,
./test_static //在前台运行 ./表示系统搜索可执行环境变量的路径
./test_static & //在后台运行

当需要改掉Makefile里面的依赖文件是只需在命令模式下进行替换:%s/test/main/g    //这里是指将test替换为main

最后

以上就是传统白开水为你收集整理的Makefile的书写规则以及/usr/bin/ld: cannot find -lcsudo yum install glibc-static的全部内容,希望文章能够帮你解决Makefile的书写规则以及/usr/bin/ld: cannot find -lcsudo yum install glibc-static所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部